2013-02-16 709 views
1

我想删除字符串中的所有句号(。)。Java:删除字符串中的句号

因此,我尝试过:inpt = inpt.replaceAll(".", "");, 但不删除只有完整的停止,它删除字符串的整个内容。

是否可以只删除满座?谢谢您的回答!

+5

将''。“'改为'”\\。“' – Maroun 2013-02-16 10:10:59

回答

15

replaceAll将正则表达式作为参数,而正则表达式中的.表示“任何字符”。

您可以使用replace代替:

inpt = inpt.replace(".", ""); 

它将删除的.所有出现。

7

不要使用replaceAll(),使用replace()

inpt = inpt.replace(".", ""); 

这是一个普遍的误解,认为replace()不全部替换,因为有一个replaceAll()方法,但实际上全部替换。这两种方法之间的区别在于,replaceAll()匹配正则表达式(正则表达式中的某个点表示“任何字符”,这解释了您正在经历的情况),而replace()与文字字符串匹配。

6

String#replaceAll(String, String)需要一个正则表达式。点是一个正则表达式元字符,可以匹配任何东西。

使用

inpt = inpt.replace(".", ""); 

它也将取代您的每一个点,而是将第一个参数作为文字序列,见JavaDoc

如果你想坚持到正则表达式,你必须逃脱点:

inpt = inpt.replaceAll("\\.", ""); 
+0

这很好。好答案。 – Ruthwik 2016-03-15 05:13:15

1

我认为你必须屏蔽点

inpt = inpt.replaceAll("\\.", ""); 
0

replaceAll使用正则表达式,请使用以下:

inpt = inpt.replaceAll("\\.", "") 
+0

更新后,应该是\\。 – Joe 2013-02-16 10:18:02