关于java,String.replaceAll

关于java,String.replaceAll,java,string,replaceall,Java,String,Replaceall,我一直在试图解决这个问题,我对replaceAll方法做了一些研究,它似乎使用了正则表达式。但我从未听说过任何包含“.”字符的正则表达式。这是我一直在使用的代码: System.out.println(parsed[1]); myStatus = parsed[1].replaceAll("...", " "); System.out.println("new: " + myStatus); status.setText(myStatus); 输出结果为: 旧…弦 新增:如果要替换文本字符串“

我一直在试图解决这个问题,我对replaceAll方法做了一些研究,它似乎使用了正则表达式。但我从未听说过任何包含“.”字符的正则表达式。这是我一直在使用的代码:

System.out.println(parsed[1]);
myStatus = parsed[1].replaceAll("...", " ");
System.out.println("new: " + myStatus);
status.setText(myStatus);
输出结果为:

旧…弦
新增:

如果要替换文本字符串
“…”
(三个点),请执行以下操作之一:

  • 使用
    替换(“…”,“”)
    ,它不使用正则表达式
  • 使用
    replaceAll(“\\.{3}”和“”)
    ,这是在正则表达式中指定文字点的方式
除非您需要使用
replaceAll()
(因为您正在调用的某些实现使用它),否则请使用
replace()

编辑:
谢谢。{code>\\.{3}比
\.\.\.\.
(doh!)更简单。

您的呼叫实际上是将任何一组3个字符替换为一个空格。因此,字符串
“old…string”
将变成4个空格。你需要避开这些点或定义一个,因为它们是

差不多

myStatus = parsed[1].replaceAll("[.]{3}", " ");

注意:您可以测试Java正则表达式。

可以,因为它用空格字符Oh替换了任意3个字符。。所以“.”字符确实有特殊的含义。谢谢你的快速回复。顺便说一句:欢迎来到SO!如果你找到了一个有效的解决方案,你可以点击所选答案左侧的复选标记来结束这个问题。@Bohemian,我先有了
\\.
,然后我看到了你的答案:P无论如何,为了“更好”的模式而编辑,我怀疑
\.{3}
可能更简单。