我想删除字符串中所有的句号(.)。
因此我尝试了:inpt = inpt.replaceAll(".", "");
,但是它并没有只删除句号,而是删除了整个字符串。
有没有可能只删除句号呢?谢谢您的回答!
replaceAll
方法接受一个正则表达式作为参数,而在正则表达式中,.
代表 "任意字符"。
您可以使用 replace
方法来替换字符:
inpt = inpt.replace(".", "");
这会删除所有出现的 .
。
不要使用replaceAll()
,而应该使用replace()
:
inpt = inpt.replace(".", "");
普遍误解是replace()
不会替换所有出现的内容,因为有一个replaceAll()
方法,但实际上两者都可以替换所有出现的内容。这两种方法之间的区别在于,replaceAll()
使用正则表达式进行匹配(顺带一提,在正则表达式中点号表示"任何字符",这解释了您所经历的情况),而replace()
使用字面量字符串进行匹配。
String#replaceAll(String, String)
函数需要一个正则表达式。点号是一个正则表达式元字符,它可以匹配任何字符。
使用:
inpt = inpt.replace(".", "");
它还将替换您的inpt
中的每个点,但将第一个参数视为文字序列,请参见JavaDoc。
如果您想使用正则表达式,则必须转义点号:
inpt = inpt.replaceAll("\\.", "");
inpt = inpt.replaceAll("\\.", "");
replaceAll
使用正则表达式,请使用以下内容:
inpt = inpt.replaceAll("\\.", "")
"."
改为"\\."
。 - Maroun