替换字符串中的所有双引号

新手上路,请多包涵

我正在从数据库中检索数据,其中字段包含带有 HTML 数据的字符串。我想替换所有双引号,以便它可以用于 jQueryparseJSON

使用Java,我正在尝试使用..替换引号

details.replaceAll("\"","\\\"");
  //details.replaceAll("\"","&quote;"); details.replaceAll("\"","&#34");

结果字符串未显示所需的更改。 O’Reilly 的 一篇文章 规定使用 Apache 字符串实用程序。有没有别的办法??

有正则表达式或我可以使用的东西吗?

原文由 MalTec 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

就是这样

String details = "Hello \"world\"!";
details = details.replace("\"","\\\"");
System.out.println(details);               // Hello \"world\"!

请注意,字符串是 不可变 的,因此仅执行 details.replace("\"","\\\"") 是不够的。您必须将变量 details 重新分配给结果字符串。


使用

details = details.replaceAll("\"","&quote;");

相反,导致

Hello &quote;world&quote;!

原文由 aioobe 发布,翻译遵循 CC BY-SA 2.5 许可协议

那不是必须是:

 .replaceAll("\"","\\\\\"")

替换字符串中有五个反斜杠。

原文由 mikhailgarber 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题