46 votes

Comment couper les espaces blancs de tous les éléments du tableau?

Je me demandais simplement quelle serait la meilleure façon de supprimer l'espace blanc de tous les éléments d'une liste.

Par exemple si j'avais String [] array = {" String", "Tom Selleck "," Fish "} Comment puis-je obtenir tous les éléments sous la forme {"String","Tom Selleck","Fish"}

Merci!

62voto

Óscar López Points 97105

Essaye ça:

 String[] trimmedArray = new String[array.length];
for (int i = 0; i < array.length; i++)
    trimmedArray[i] = array[i].trim();

Désormais, trimmedArray contient les mêmes chaînes que array , mais sans les espaces de début et de fin. Alternativement, vous pouvez écrire ceci pour modifier les chaînes sur place dans le même tableau :

 for (int i = 0; i < array.length; i++)
    array[i] = array[i].trim();

31voto

user2189998 Points 126

Autre option java 8 lambda :

 String[] array2 = Arrays.stream(array).map(String::trim).toArray(String[]::new);

Et la version moche mais optimisée sans nouvelle création de tableau

 Arrays.stream(array).map(String::trim).toArray(unused -> array);

Le "tableau" d'origine est modifié.

27voto

blueDexter Points 445

Ajoutez commons-lang3-3.1.jar dans le chemin de génération de votre application. Utilisez l'extrait de code ci-dessous pour couper le tableau String.

 String array = {" String", "Tom Selleck "," Fish "};
array = StringUtils.stripAll(array);

21voto

danielmcd Points 161

En Java 8, Arrays.parallelSetAll semble tout prêt à cet effet :

 import java.util.Arrays;

Arrays.parallelSetAll(array, (i) -> array[i].trim());

Cela modifiera le tableau d'origine en place, remplaçant chaque élément par le résultat de l'expression lambda.

6voto

YvesHendseth Points 1003

Je sais que c'est un très vieux message, mais depuis Java 1.8, il existe un moyen plus agréable de couper chaque chaîne d'un tableau.

Solution d'expression Java 8 Lamda :

 List<String> temp = new ArrayList<>(Arrays.asList(yourArray));
temp.forEach(e -> {temp.set((temp.indexOf(e), e.trim()});
yourArray = temp.toArray(new String[temp.size()]);

avec cette solution, vous n'avez pas besoin de créer un nouveau tableau. Comme dans la solution d'Óscar López

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X