Es scheint niemand mit streams
in Java 8nonNull
Verfahren zur Verwendung, die auch verwendet werden kann, entfernen null (aber nicht leer), wie erwähnt:
String[] origArray = {"Apple", "", "Cat", "Dog", "", null};
String[] cleanedArray = Arrays.stream(firstArray).filter(Objects::nonNull).toArray(String[]::new);
System.out.println(Arrays.toString(origArray));
System.out.println(Arrays.toString(cleanedArray));
Und der Ausgang ist :
[Apple, Katze, Hund,, null]
[Apple, Katze, Hund,]
Wenn wir auch leer zu übernehmen wollen, dann können wir eine Hilfsmethode definieren (in der Klasse Utils
(sagen wir)):
public static boolean isEmpty(String string) {
return (string != null && !string.isEmpty());
}
Und dann verwenden, zu filtern, die Elemente wie:
Arrays.stream(firstArray).filter(Utils::isEmpty).toArray(String[]::new);
glaube ich Apache gemeinsam stellt auch ein Dienstprogramm Methode StringUtils.isNotEmpty
, die auch verwendet werden können.
'null' ist völlig anders als" leere Zeichenfolge "in Java. Das ist dein erstes Problem. –
null ist nicht "". "" ist eine leere, aber vollkommen gültige Zeichenfolge. – EboMike
In diesem Array ist kein Nullwert vorhanden. Es gibt jedoch einen leeren Stich (ein Nicht-Null-String-Objekt mit einer Länge von 0). Wie auch immer, * was * hast du versucht? –