Javaのプログラマー:
私は、文字列からいくつかの文字を削除する方法があります。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();
}
彼らは次のとおりでした:
これはどう:
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);
出力:
abca
注:filter
あなたと同じ目的を果たすMYCOLLECTION
-私はちょうどそれをより意味のある名前を与え、使用Set
のパフォーマンス向上のためにcontains
。
あった場合、それはきれいだったかもしれないCharStream
(プリミティブのすなわちストリームchar
s)は、私が使用する必要がないように、IntStream
。