7

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

因此我尝试了: inpt = inpt.replaceAll(".", "");,但不是只删除句号,而是删除了字符串的全部内容。

是否可以只删除句号?谢谢您的回答!

4

5 回答 5

32

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

您可以replace改用:

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

它将删除所有出现的..

于 2013-02-16T10:09:23.663 回答
11

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

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

这是一个常见的误解,replace()它不会替换所有出现的事件,因为有一种replaceAll()方法,但实际上两者都会替换所有出现的事件。这两种方法之间的区别在于replaceAll()匹配正则表达式(正则表达式中的点表示“任何字符”,它解释了您遇到的情况),而replace()匹配文字字符串。

于 2013-02-16T10:10:05.040 回答
6

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

采用

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

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

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

inpt = inpt.replaceAll("\\.", "");
于 2013-02-16T10:10:14.303 回答
1

我认为你必须掩盖这个点

inpt = inpt.replaceAll("\\.", "");
于 2013-02-16T10:10:41.073 回答
0

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

inpt = inpt.replaceAll("\\.", "")
于 2013-02-16T10:12:39.787 回答