11 votes

Suppression des espaces à la fin d'une chaîne de caractères en java

Duplicata possible :
Suppression des espaces de début et de fin d'une chaîne Java

Lorsque j'importe des données dans une application, j'ai besoin de me débarrasser des espaces à la fin de certaines chaînes de caractères, mais pas de ceux du début, ce qui m'empêche d'utiliser trim()... J'ai mis en place une méthode :

public static String quitarEspaciosFinal(String cadena) {
    String[] trozos = cadena.split(" ");
    String ultimoTrozo = trozos[trozos.length-1];
    return cadena.substring(0,cadena.lastIndexOf(ultimoTrozo.charAt(ultimoTrozo.length()-1))+1);
    }

où cadena est la chaîne que je dois transformer...

Ainsi, si cadena = " 1234 ", cette méthode renverrait " 1234 "...

J'aimerais savoir s'il y a un moyen plus efficace de le faire...

28voto

KayKay Points 3449

Vous pouvez utiliser replaceAll() sur la chaîne de caractères, avec le regex \s+$ :

return cadena.replaceAll("\\s+$", "");

Si vous voulez seulement supprimer les espaces réels (pas les tabulations ni les nouvelles lignes), remplacez \\s par un espace dans la regex.

9voto

m0skit0 Points 10269
    String s = "   this has spaces at the beginning and at the end      ";
    String result = s.replaceAll("\\s+$", "");

9voto

halex Points 7761

Bibliothèque Apache Commons a la méthode appropriée stripEnd .

6voto

Eugene Points 6271
 public static String replaceAtTheEnd(String input){
    input = input.replaceAll("\\s+$", "");
    return input;
}

5voto

Nicola Musatti Points 10070

Je le ferais comme ça :

public static String trimEnd(String s)
{
    if ( s == null || s.length() == 0 )
        return s;
    int i = s.length();
    while ( i > 0 &&  Character.isWhitespace(s.charAt(i - 1)) )
        i--;
    if ( i == s.length() )
        return s;
    else
        return s.substring(0, i);
}

C'est beaucoup plus verbeux que d'utiliser une expression régulière, mais c'est probablement plus efficace.

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