11

重複の可能性:
Java 文字列から先頭と末尾のスペースを削除する

データをアプリケーションにインポートするとき、特定の文字列の末尾にあるスペースを取り除く必要がありますが、先頭にあるスペースは取り除く必要がないため、trim() を使用できません... メソッドを設定しました:

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);
    }

カデナは私が変換しなければならない文字列です...

したがって、cadena = "1234" の場合、このメソッドは "1234" を返します...

もっと効率の良い方法があれば教えていただきたいです...

4

5 に答える 5

28

replaceAll()正規表現を使用して、文字列でメソッドを使用できます\s+$

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

(表や新しい行ではなく)実際のスペースのみを削除する場合\\sは、正規表現内のスペースに置き換えてください。

于 2012-08-24T09:36:55.167 に答える
9

Apache Commons ライブラリには適切なメソッドがありますstripEnd

于 2012-08-24T09:57:38.337 に答える
9
    String s = "   this has spaces at the beginning and at the end      ";
    String result = s.replaceAll("\\s+$", "");
于 2012-08-24T09:42:44.437 に答える
6
 public static String replaceAtTheEnd(String input){
    input = input.replaceAll("\\s+$", "");
    return input;
}
于 2012-08-24T09:38:54.613 に答える
5

I'd do it like this:

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);
}

It's way more verbose than using a regular expression, but it's likely to be more efficient.

于 2012-08-24T10:06:35.083 に答える