Javaの8文字列をフィルタリング

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(プリミティブのすなわちストリームchars)は、私が使用する必要がないように、IntStream

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=361856&siteId=1