2012-12-29 27 views
5

我需要替換包含空白和句點的字符串。我試圖用下面的代碼:如何替換包含點的java中的字符串?

String customerName = "Mr. Raj Kumar"; 

customerName = customerName.replaceAll(" ", ""); 
System.out.println("customerName"+customerName); 

customerName = customerName.replaceAll(".", ""); 
System.out.println("customerName"+customerName); 

,但是這會導致:

客戶名稱Mr.RajKumar

而且

客戶名稱

我從第一個SOP獲得正確的客戶名稱,但是從第二個SOP我沒有收到任何價值。

+2

用反斜線將點換掉:'\ .' – martijno

回答

25

轉義點,否則它將匹配任何字符。這種轉義是必要的,因爲replaceAll()將第一個參數視爲正則表達式。

customerName = customerName.replaceAll("\\.", ""); 

你可以做整個事情有一個說法:

customerName = customerName.replaceAll("[\\s.]", ""); 
+2

詳細解釋這個正確的答案:'replaceAll()'使用正則表達式,而不是字符串文字。 –

+0

**謝謝!!! ** – Raghupathiraja

+0

你贏得了我的心 –

4

使用這個在你的代碼只是爲了去除週期

customerName = customerName.replaceAll("[.]",""); 
1

您可以簡單地使用str.replace(」 。「,」「)它會代替所有點的出現,記住replace和replaceAll之間只有一個區別,後來用正則表達式作爲輸入字符串,其中第一個一個使用簡單的字符序列。

相關問題