java - java字符串replaceAll“到\\”
问题描述
我想将字符串中的 " 替换为 \\" 以供 Javascript JSON.parse(...) 以后使用,我尝试以下测试
String name = "\"ab\"c";
System.out.println("name before escape="+name);
String name1 = name.replaceAll("\"", "\\\"");
System.out.println("name1="+name1);
String name2 = name.replaceAll("\"", "\\\\\"");
System.out.println("name2="+name2);
String name3 = name.replaceAll("\"", "\\\\\\\"");
System.out.println("name3="+name3);
结果如下:
name before escape="ab"c
name1="ab"c
name2=\"ab\"c
name3=\"ab\"c
所以都失败了,我不明白输出结果
- 为什么name2和name3是一样的?
- 如何将所有“替换为\\”
[更新1}
对于问题2,我发现了以下工作
System.out.println("name4=" + name.replaceAll("\"", Matcher.quoteReplacement("\\\\\"")));
虽然我因为它起作用的原因而感到迷茫......
解决方案
最好使用replace()
而不是replaceAll()
:
String name = "\"ab\"c";
System.out.println("name before escape=" + name);
System.out.println("name1=" + name.replace("\"", "\\\\\""));
输出:
name before escape="ab"c
name1=\\"ab\\"c
推荐阅读
- android - 我在 LocationResult 中发现 @RecentlyNonNull 与代码相矛盾,我应该相信哪个?
- postgresql - 固定精度交叉点抱怨我需要 GEOS 3.9 或更高版本,但 PostGIS_GEOS_Version() 是 3.9
- python - Python Flask 登录 Current_User 并不总是可用
- c++ - 如何检测 .txt 文件中的卷曲(智能)撇号?(C++)
- python - 带有股票数据的 Python 线性回归线 - 获取 y 轴上的收盘价
- java - 如何在Java中解析json中的json
- python - 文件之间的 Python 全局变量
- visual-studio-code - PHP HTML 自动完成/片段 VS 代码
- c - 程序从 main 返回时触发断言
- typescript - 如何将类型元组转换为类型联合