Jav*_*mer 8 java string java-8
我有一种方法可以从字符串中删除一些字符。有没有更好的方法来使用 java 8 做到这一点?
public String filter(String test) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < test.length(); i++) {
if (MYCOLLECTION.contains(test.charAt(i))) {
builder .append(test.charAt(i));
}
}
return builder .toString();
}
Run Code Online (Sandbox Code Playgroud)
这个怎么样:
Set<Character> filter = new HashSet<>(Arrays.asList('a','b','c'));
String filtered = "abcdefga".chars ()
.filter(i -> filter.contains((char) i))
.mapToObj(i -> "" + (char) i)
.collect(Collectors.joining());
System.out.println (filtered);
Run Code Online (Sandbox Code Playgroud)
输出:
abca
Run Code Online (Sandbox Code Playgroud)
注意:filter
与您的用途相同MYCOLLECTION
- 我只是给了它一个更有意义的名称,并使用了Set
更好的性能contains
。
如果有一个CharStream
(即原始流char
),它可能会更干净,所以我不必使用IntStream
.
归档时间: |
|
查看次数: |
2782 次 |
最近记录: |