wake-up-neo.com

Entfernen Sie führende und nachgestellte Leerzeichen von Java-Zeichenfolge

Gibt es eine bequeme Methode, um führende oder nachgestellte Leerzeichen aus einem Java-String zu entfernen?

So etwas wie:

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

Ergebnis:

no spaces:keep this

myString.replace(" ","") würde den Abstand zwischen keep und this ersetzen.

Vielen Dank

247
Tyler DeWitt

Sie können die trim () -Methode ausprobieren.

String newString = oldString.trim();

Werfen Sie einen Blick auf javadocs

558
woliveirajr

Verwenden Sie String#trim() method oder String allRemoved = myString.replaceAll("^\\s+|\\s+$", ""), um sowohl das Ende als auch.

Für linke Verkleidung:

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

Für rechte Verkleidung:

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

Aus den docs :

String.trim();
29
Richard H

trim () ist Ihre Wahl, aber wenn Sie die replace-Methode verwenden möchten - die möglicherweise flexibler ist, können Sie Folgendes versuchen:

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

Mit Java-11 können Sie jetzt die String.strip - API verwenden, um eine Zeichenfolge zurückzugeben, deren Wert diese Zeichenfolge ist, wobei alle führenden und nachgestellten Leerzeichen entfernt werden. Der Javadoc für das gleiche liest:

/**
 * 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()

Die Fallbeispiele für diese könnten sein:

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

Um bestimmte Zeichen zu trimmen, können Sie Folgendes verwenden:

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

Hier werden führende und nachgestellte Leerzeichen und Komma entfernt.

0
Galley