2012-12-29 30 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之间只有一个区别,后来用正则表达式作为输入字符串,其中第一个一个使用简单的字符序列。

相关问题