java - 流式传输和过滤字符串以获取 char[] 数组
问题描述
我正在尝试使用类似下面的内容来按字母数字字符流式传输和过滤给定的字符串。
List<String> alphanumeric = Arrays.asList("012345689abcdefhijklmnopqrstuvwxyz".split(""));
char[] ssplit = Arrays.asList(s.toLowerCase().split(""))
.stream()
.filter(alphanumeric::contains)
.map(i -> i.charAt(0))
.toArray(new char[0]);
但后来我得到以下错误:
error: method toArray in interface Stream<T> cannot be applied to given types;
.toArray(new char[0]);
^
required: IntFunction<A[]>
found: char[]
reason: cannot infer type-variable(s) A
我在这里做错了什么?错误消息对我来说零意义
解决方案
在您的情况下,正则表达式可能是正确的解决方案,或者将您的数组更改为Character[]
. 但是,如果您需要一个 char 数组,您可以执行以下操作:
char[] ssplit = Arrays.asList(s.toLowerCase().split(""))
.stream()
.filter(alphanumeric::contains)
.collect(Collectors.joining())
.toCharArray();
推荐阅读
- javascript - 在 javascript/React-native 中使用新值更新对象数组键
- python - 从 Python 中的数据学习二元决策图 (BDD)
- python - 删除 *NEARLY* 重复的观察 - Python
- angular - 为 Angular Router Guard 处理多个 Observable
- c++ - C++ 中的 utsname/uname
- kubernetes - Helm - 非常不寻常且不规则的 Kubernetes YAML 格式的文档规范
- rust - 未显示 Bevy 文本,我不知道为什么
- vb.net - 如何检查 UltraTree 节点是否已存在
- r - 使用正则表达式擦除已知可变长度字符串之后的所有内容
- reactjs - ARIA 属性是否有扩展/eslint?