J'ai un List<String>
, contenant potentiellement des milliers de chaînes. J'implémente une méthode de validation, qui inclut de s'assurer qu'il n'y a pas d'espaces blancs de début ou de fin dans chaque chaîne.
J'itère actuellement sur la liste, j'appelle String.trim () pour chaque String
et je l'ajoute à un nouveau List<String>
et réaffecter à la liste d'origine après:
List<String> trimmedStrings = new ArrayList<String)();
for(String s : originalStrings) {
trimmedStrings.add(s.trim());
}
originalStrings = trimmedStrings;
J'ai l'impression qu'il y a DRYer moyen de le faire. Existe-t-il ici des approches alternatives plus efficaces? Merci!
Edit: Oui, je suis sur Java 8, donc Java 8 suggestions sont les bienvenues!)
Dans Java 8, vous devez utiliser quelque chose comme:
List<String> trimmedStrings =
originalStrings.stream().map(String::trim).collect(Collectors.toList());
il est également possible d'utiliser unaire String::trim
opérateur pour les éléments de la liste initiale (les instances non coupées String
seront écrasées) en appelant cette méthode:
originalStrings.replaceAll(String::trim);
Si vous utilisez Java-8, vous pouvez utiliser:
final List<Object> result = arrayList.stream()
.map(String::trim)
.collect(Collectors.toList());