Java文字列から先頭と末尾のスペースを取り除く


278

Java文字列から先頭または末尾のスペースを削除する便利な方法はありますか?

何かのようなもの:

String myString = "  keep this  ";
String stripppedString = myString.strip();
System.out.println("no spaces:" + strippedString);

結果:

no spaces:keep this

myString.replace(" ","") キープとこれの間のスペースを置き換えます。


7
残念なことですが、ここでの答えが人々にとって役に立ったということです。私はその理由だけに賛成しました。
Alex D

11
これは重複する可能性がありますが、これははるかに優れた質問です。どちらかと言えば、もう1つはこの1つの複製として近いはずです。
thecoshman 2014年

1
このQ&Aにはより多くのビューとお気に入りがあり、他のQ&Aは実際にはデバッグの質問なので、複製を切り替えました。
Radiodef 2018

1
答えをしたJDK / 11 APIからソリューション - String.stripこれまで。
ナマン

回答:


601

trim()メソッドを試すことができます。

String newString = oldString.trim();

javadocsを見てください


1
Java 11のString.strip()の下位互換性のある代替品として機能します。微妙な違いを探求する時間がありませんでした。
Josiah Yoder

80

String#trim()メソッドまたはString allRemoved = myString.replaceAll("^\\s+|\\s+$", "")を使用して、両端をトリムします。

左トリムの場合:

String leftRemoved = myString.replaceAll("^\\s+", "");

右トリムの場合:

String rightRemoved = myString.replaceAll("\\s+$", "");

3
これには、文字列内の先頭/末尾のスペースの数を通知できるという追加の利点があります。
BłażejCzapp


18

trim()はあなたの選択ですが、replaceメソッドを使用したい場合-より柔軟な方法かもしれませんが、以下を試すことができます:

String stripppedString = myString.replaceAll("(^ )|( $)", "");

それは何を置き換えますか?スペースと改行はどうでしょうか?
誰かどこか

後続のスペースを削除するだけで、先頭のスペースは削除しないソリューションを探していました。使用しました:str.replaceAll( "\\ s * $"、 "")ありがとうございます!
リサp。

4

Java-11以降では、String.stripAPIを利用して、値がこの文字列である文字列を返し、先頭と末尾の空白をすべて削除できます。同じ読み取りのjavadoc:

/**
 * Returns a string whose value is this string, with all leading
 * and trailing {@link Character#isWhitespace(int) white space}
 * removed.
 * <p>
 * If this {@code String} object represents an empty string,
 * or if all code points in this string are
 * {@link Character#isWhitespace(int) white space}, then an empty string
 * is returned.
 * <p>
 * Otherwise, returns a substring of this string beginning with the first
 * code point that is not a {@link Character#isWhitespace(int) white space}
 * up to and including the last code point that is not a
 * {@link Character#isWhitespace(int) white space}.
 * <p>
 * This method may be used to strip
 * {@link Character#isWhitespace(int) white space} from
 * the beginning and end of a string.
 *
 * @return  a string whose value is this string, with all leading
 *          and trailing white space removed
 *
 * @see Character#isWhitespace(int)
 *
 * @since 11
 */
public String strip()

これらのサンプルケースは次のとおりです。

System.out.println("  leading".strip()); // prints "leading"
System.out.println("trailing  ".strip()); // prints "trailing"
System.out.println("  keep this  ".strip()); // prints "keep this"

PS: -からのコメントに基づいて、ここで答えを移行 stackoverflow.com/questions/3796121/...
ナマン


0

特定の文字をトリミングするには、以下を使用できます。

String s = s.replaceAll("^(,|\\s)*|(,|\\s)*$", "")

ここでは、先頭と末尾のスペースカンマが削除されます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.