web-dev-qa-db-ja.com

java)の文字列の末尾のスペースを削除する

重複の可能性:
先頭と末尾のスペースを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は変換する必要のある文字列です...

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

これを行うためのより効率的な方法があるかどうか知りたいのですが...

9
diminuta

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

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

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

26
kgautron

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

9
halex
    String s = "   this has spaces at the beginning and at the end      ";
    String result = s.replaceAll("\\s+$", "");
9
m0skit0
 public static String replaceAtTheEnd(String input){
    input = input.replaceAll("\\s+$", "");
    return input;
}
6
Eugene

私はこのようにします:

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

正規表現を使用するよりもはるかに冗長ですが、より効率的である可能性があります。

4
Nicola Musatti