2010-12-01 183 views
5

我意識到這裏有很多問題,但我還沒有找到適合我的情況的解決方案。我知道string.trim(),它沒有效果。在線上研究並發現了一個討厭string.trim()的世界之後,我意識到我試圖刪除的空白字符必須超出.trim()的範圍。修剪Java中的字符串空白

我正在使用一些我並不完全理解的正則表達式來除去'='和','以及所有空白字符串,如果它緊跟在','之後,則不帶字符串。

但是,我現在要完全刪除字符串中的所有空格。任何想法如何編輯正在使用我來完成這個正則表達式將不勝感激。再次,我想要的是'='和','還有數字和字母。所有空格和其他特殊字符都應該刪除。

這裏是到目前爲止的代碼:

if (argsToBeFiltered != null) { 
      // Remove all whitespace and chars apart from = and , 
      String filteredArgs = argsToBeFiltered.replaceAll(
        "[^=,\\da-zA-Z\\s]|(?<!,)\\s", ""); 
      return filteredArgs; 
} 

回答

5

時間去學習正則表達式!

請參閱Pattern和各種正則表達式教程,如Lesson: Regular Expressions

[^=,\\da-zA-Z\\s] 

那部分表示匹配NOT(^)中的字符:=,,數字(\ d),A-Z(A-Z)或空白(\ S)。但是,您可能希望它現在匹配空格(因爲沒有第二個逗號部分來匹配它們)。所以:

argsToBeFiltered.replaceAll("[^=,\\da-zA-Z]", ""); 
+3

這是不完全正確。 `\\ s`(或字符串轉義後的`\ s`)不僅僅是空格,還包括垂直和水平製表符,回車符/換行符等等...... – Powerlord 2010-12-01 18:38:39

+0

Thankyouthankyouthankyouthankyouthankyou !!!!! – Frank 2010-12-01 18:38:43

1

試試這個: -

if (argsToBeFiltered != null) { 
      // Remove all whitespace and chars apart from = and , 
      String filteredArgs = argsToBeFiltered.replaceAll(
        "\\w+"); 
      return filteredArgs; 
}