問題:去除Java字符串中的空格
俺有一個像這樣的字符串
mysz = "name=john age=13 year=2001";
我想要去除字符串里面的空格。我嘗試使用 trim() ,但是呢它只去除了字符串前后的空格。我也嘗試用
("\W", “”),但是它把=也給搞掉了。
我怎么樣才能搞出這樣一個字符串啊?
mysz2 = “name=johnage=13year=2001”
回答一
The most correct answer to the question is:
這個問題最正確的答案就是:
String mysz2 = mysz.replaceAll("\\s","");
我只是這個代碼從其他答案里找到這個代碼的。我放上來是因為這個代碼除了準確地完成了題目的要求以外,它也說明了這個結果是作為一個新字符串返回的,源字符串沒有像其他代碼那樣被修改
(經驗豐富的Java開發者可能會說“當然啦,你不能真正修改一個字符串",但是這個問題的目標看客可能不會太清楚這個)
回答二
st.replaceAll("\s+","")清楚所有的空格和看不見的字符(例如 tab, \n).
st.replaceAll("\s+","") 和 st.replaceAll("\s","")產生的效果是一樣的
第二個正則表達式大概比第一個快20%,但是隨著空格數目的增加,第一個的表現可能會優于第二個的
把這個值分配給一個變量,如果你不直接使用的話
st = st.replaceAll("\s+","")
回答二
replaceAll("\\s","")
\w = 所有單詞字符
\W = 所有非單詞字符(包括各種標點符號)
\s = 任何空白字符 (包括空格, tab 等等)
\S = 任何非空白字符 (包括數字字母標點符號等等etc)
(正如上面指出的那樣,如果你想要 \s到達正則表達式引擎,你就需要轉義字符,所以寫成 \s)
文章翻譯自Stack Overflow:https://stackoverflow.com/questions/5455794/removing-whitespace-from-strings-in-java