3

我有例如这个:

"hello . world . thanks ."

我想得到这个:

"hello. world. thanks."

我试过

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

但它不起作用。有什么解决办法??

谢谢大家

4

3 回答 3

7

replaceAll第一个论点使用正则表达式。如果您想要一些非常简单的东西(也就是给出的示例,假设您的实际问题不是更复杂),您可以使用replace.

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

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace(java.lang.CharSequence, java.lang.CharSequence)

于 2013-06-28T17:48:37.027 回答
5

您的第二种方法应该有效。

我猜你之前可能有 1 到多个空格或制表符.。在这种情况下,如果你有它们,你需要使用+量词来匹配 1 到多个空格

text = text.replaceAll("\\s+[.]",".");

由于.在正则表达式中具有特殊含义,因此您需要使用\\.or [.]which 会按.字面意思对其进行转义

\s类似于[ \t\r\n]

于 2013-06-28T17:46:35.943 回答
3

我建议你不要String.replaceAll开始使用。您在这里不需要正则表达式,那么为什么要让自己更难呢?改为使用String.replace

text = text.replace(" .", ".");
于 2013-06-28T17:48:14.680 回答