Java:移除字符串中的句号

7

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

因此我尝试了:inpt = inpt.replaceAll(".", "");,但是它并没有只删除句号,而是删除了整个字符串。

有没有可能只删除句号呢?谢谢您的回答!


6
"." 改为 "\\." - Maroun
5个回答

32

replaceAll 方法接受一个正则表达式作为参数,而在正则表达式中,. 代表 "任意字符"。

您可以使用 replace 方法来替换字符:

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

这会删除所有出现的 .


11

不要使用replaceAll(),而应该使用replace()

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

普遍误解是replace()不会替换所有出现的内容,因为有一个replaceAll()方法,但实际上两者都可以替换所有出现的内容。这两种方法之间的区别在于,replaceAll()使用正则表达式进行匹配(顺带一提,在正则表达式中点号表示"任何字符",这解释了您所经历的情况),而replace()使用字面量字符串进行匹配。


6

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

使用:

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

它还将替换您的inpt中的每个点,但将第一个参数视为文字序列,请参见JavaDoc

如果您想使用正则表达式,则必须转义点号:

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

1
我认为你需要掩盖这个点。
inpt = inpt.replaceAll("\\.", "");

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接