Java 8 filtración de una cadena

Programador de Java:

Tengo un método para eliminar algunos caracteres de una cadena. ¿Hay una mejor manera de hacer esto utilizando 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();
}
Eran :

Qué tal esto:

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);

Salida:

abca

Nota: filtersirve al mismo propósito que tu MYCOLLECTION- Yo sólo le di un nombre más significativo y se utiliza una Setpara un mejor rendimiento de contains.

Podría haber estado más limpia si había una CharStream(es decir, corriente de primitiva chars), por lo que no tendría que usar una IntStream.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=361859&siteId=1
Recomendado
Clasificación