2013-10-01 35 views
0

如何刪除Java字符串 空白,我也試試這個如何刪除java字符串處理的空白

String x=splitString.replaceAll("\\s+",""); 

而且這個

String x=splitString.trim() 

,但它不工作

+17

解釋不起作用,因爲第一個肯定會替換所有的空格。 –

+2

你想刪除所有的空白區域或只有左側和右側修剪? –

+6

只是爲了說清楚:x在方法調用後沒有空白。 splitString保持不變字符串在java中是不可變的 –

回答

23

的人認爲\s比賽所有空白都是很簡單的錯誤小軍! Looking in the docs我們可以看到,它匹配[ \t\n\x0B\f\r] - (或者換句話說,只是普通的老式普通空格)打破空白一堆

同樣,trim()不匹配所有空白或者(這個更糟糕的是,它匹配所有具有值< =空格的字符,其中大部分不是技術上的空格) - 所以在字符串之前和之後給出空格的示例,然後調用trim()就不是一個全面的測試想像力。

鑑於上述情況,您所提供的一定會從字符串中去除所有打破空白的(基於正則表達式)的代碼,所以它聽起來像你對我在那裏有一個潛在的非破空白字符。如果您從某些外部源拉取任何文本,而不是僅僅將代碼寫入字符串(例如HTML頁面的一部分可能是最有可能的候選者),則情況尤其如此。

如果是這樣的話,那就試試:

String x=splitString.replaceAll("\\p{Z}",""); 

...其中\p{Z}是匹配任何一種空白的,不只是不打破空間的快捷方式。 \p{Separator}是其較長(等同)的形式。

+1

其工作感謝..... –

+2

+1注:trim()刪除尾隨/前導字符<=空格。這包括許多非空格字符,並錯過許多更高的空格字符。 –

+0

@PeterLawrey謝謝你 - 我完全不知道!相應地更新了答案。 – berry120

1

試試這個代碼會幫到你!

String st = " Hello I am White Space "; 
System.out.println(st); // Print Original String 
    //st = st.replaceAll("\\s+",""); // Remove all white space and assign to same 
    st = st.trim(); // It is working fine. 
System.out.println(st); // Print after removing all white space. 
+1

首先看到我已經在問題 –

+0

中提出的問題,我的工作很好。它正在刪除白色空間。 –

+3

-1,這段代碼與問題中的代碼完全相同! – berry120

相關問題