Ich habe eine List<String>
, potenziell Tausende von Strings halten. Ich implementiere eine Validierungsmethode, bei der sichergestellt wird, dass in jeder Zeichenfolge keine führenden oder nachgestellten Leerzeichen enthalten sind.Wie schneidet man() alle Elemente in einer Liste <String> am besten ab?
ich zur Zeit über die Liste iterieren, für jeden String
String.trim() Aufruf und Hinzufügen zu einem neuen List<String>
und zurück auf die ursprüngliche Liste Neuzuweisung nach:
List<String> trimmedStrings = new ArrayList<String)();
for(String s : originalStrings) {
trimmedStrings.add(s.trim());
}
originalStrings = trimmedStrings;
Ich fühle mich wie ein es DRYer Weg mach das. Gibt es hier alternative, effizientere Ansätze? Vielen Dank!
Edit: Ja, ich bin auf Java 8, so Java 8 Vorschläge sind willkommen!
Die verknüpfte Frage bezieht sich auf das Überhöhen jedes Strings, aber das gleiche gilt für das Trimmen: 'originalStrings.replaceAll (String :: trim);' – Tunaki
Leider nein. Zeichenfolgen sind unveränderbar, dh Sie müssen mit neuen Zeichenfolgenobjekten arbeiten, die nicht bereits in der Liste enthalten sind. Bei bestimmten List-Implementierungen könnten Sie ein Element entfernen und das getrimmte Objekt an der gleichen Position einfügen, wodurch Sie die zweite "Liste" sparen würden. – f1sh