Removing whitespace from strings in Java
Solution 1:
st.replaceAll("\\s+","")
removes all whitespaces and non-visible characters (e.g., tab, \n
).
st.replaceAll("\\s+","")
and st.replaceAll("\\s","")
produce the same result.
The second regex is 20% faster than the first one, but as the number consecutive spaces increases, the first one performs better than the second one.
Assign the value to a variable, if not used directly:
st = st.replaceAll("\\s+","")
Solution 2:
replaceAll("\\s","")
\w
= Anything that is a word character
\W
= Anything that isn't a word character (including punctuation etc)
\s
= Anything that is a space character (including space, tab characters etc)
\S
= Anything that isn't a space character (including both letters and numbers, as well as punctuation etc)
(Edit: As pointed out, you need to escape the backslash if you want \s
to reach the regex engine, resulting in \\s
.)
Solution 3:
The most correct answer to the question is:
String mysz2 = mysz.replaceAll("\\s","");
I just adapted this code from the other answers. I'm posting it because besides being exactly what the question requested, it also demonstrates that the result is returned as a new string, the original string is not modified as some of the answers sort of imply.
(Experienced Java developers might say "of course, you can't actually modify a String", but the target audience for this question may well not know this.)
Solution 4:
How about replaceAll("\\s", "")
. Refer here.
Solution 5:
One way to handle String manipulations is StringUtils from Apache commons.
String withoutWhitespace = StringUtils.deleteWhitespace(whitespaces);
You can find it here. commons-lang includes lots more and is well supported.