292

Is there a convenience method to strip any leading or trailing spaces from a Java String?

Something like:

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

Result:

no spaces:keep this

myString.replace(" ","") would replace the space between keep and this.

4
  • 7
    It's unfortunate, but it means that the answers here were useful to people. I upvoted for that reason only. Commented Mar 12, 2012 at 8:32
  • 12
    Whilst this may be a duplicate, this is by far a better presented question. If anything, the other should be close as a duplicate of this one. Commented Jan 27, 2014 at 11:41
  • 1
    I switched the duplicates because this Q&A has far more views and favorites, and the other Q&A is actually a debugging question. Commented Jul 23, 2018 at 14:02
  • 1
    Made an answer with the solution from JDK/11 API - String.strip to this. Commented Jul 23, 2018 at 17:15

8 Answers 8

618

You can try the trim() method.

String newString = oldString.trim();

Take a look at javadocs

Sign up to request clarification or add additional context in comments.

1 Comment

Works as a backward-compatible replacement for Java 11's String.strip(). I haven't had time to explore the subtle differences.
87

Use String#trim() method or String allRemoved = myString.replaceAll("^\\s+|\\s+$", "") for trim both the end.

For left trim:

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

For right trim:

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

1 Comment

This has the added benefit of being able to tell how many leading/trailing spaces there are in the string.
34

From the docs:

String.trim();

Comments

18

trim() is your choice, but if you want to use replace method -- which might be more flexiable, you can try the following:

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

2 Comments

what all does it replace? Spaces and newlines maybe ?
I was searching for a solution to just remove trailing spaces but not leading spaces. I used: str.replaceAll("\\s*$", "") Thank you!
5

With Java-11 and above, you can make use of the String.strip API to return a string whose value is this string, with all leading and trailing whitespace removed. The javadoc for the same reads :

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

The sample cases for these could be:--

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

2 Comments

PS: Migrating the answer here based on the comments from - stackoverflow.com/questions/3796121/…
1

To trim specific char, you can use:

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

Here will strip leading and trailing space and comma.

Comments

1

s.strip() you can use from java 11 onwards.

s.trim() you can use.

Comments

-1
private void capitaliseEveryWordInASentence() {

    String mm = "Hello there, this is the cluster";

    String[] words = mm.split(" ");
    String outt = "";

    for (String w : words) {

        outt = outt + Character.toUpperCase(w.charAt(0)) + w.substring(1) + " ";
    }

    System.out.println(outt.trim());
}

2 Comments

As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
Looks like you're answering a totally different question here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.