在 replaceAll() 方法中对替换字符串调用替换

看起来这应该有效,但它没有......我试图在传递给 replaceAll() 方法的替换字符串上调用 replace() 方法。

例如,我尝试使用以下代码去掉双引号内的任何逗号:

String string = "\"Thu, Sep 6, 2018 10:00 AM\"";
System.out.println(string.replaceAll("(\"[^\"]+\")", "$1".replace(",", "")));

结果是相同的字符串:"Thu, Sep 6, 2018 10:00 AM"当我希望"Thu Sep 6 2018 10:00 AM"

我已经查看了 String.replaceAll() 和 Matcher.replaceAll() 的文档,但我仍然无法弄清楚为什么这不起作用。谁能帮我理解?

让我强调一下,我很想知道为什么这不起作用 - 我对解决方案不感兴趣,我已经找到了替代方案。谢谢。


MYYA
浏览 163回答 2
2回答

一只萌萌小番薯

您在“$1”上调用 .replace,而不是 replaceAll 的结果。关闭 replaceAll 调用的括号并调用 .replace 方法。尝试System.out.println(string.replaceAll("(\"[^\"]+\")", "$1").replace(",", ""))

白衣非少年

只需更改结束括号的位置,它就会起作用:System.out.println(string.replaceAll("(\"[^\"]+\")", "$1").replace(",", ""))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java