我有一个包含反斜杠字符(\
)的字符串值。我的目标是用字符(_
)替换它。
我按照此问题How to remove the backslash in string using regex in Java?
中提供的解决方案执行了以下操作 String x = "2\5\2017";
x = x.replaceAll("\\\\", "_");
但我总是将{27
)作为x
的值。注意:2到7之间有未知字符。在控制台中,我可以看到它是一个小方块。
答案 0 :(得分:5)
这是因为如果您在\
中没有逃脱x
,则不会逃离"2\5\2017"
\
中x
的{{1}},它会认为\5
和\201
(八进制将有3位数字)将是八进制数字。这样:
"2\5\2017"
将显示为:
2??7
所以你应该像@Harmlezz那样 unescape 。
答案 1 :(得分:4)
我认为您想要将输入字符串重新定义为:
String x = "2\\5\\2017"
然后x
的结果将是:
2_5_2017
答案 2 :(得分:0)
只需使用" \\" 添加"字符串中的\#34; 。然后用"替换它_"
String x = "2\\5\\2017";
x = x.replaceAll("\\\\", "_");
" \"是一个特殊的角色,看" \"在我们的String中,我们需要添加一个额外的" \"喜欢" \\"在一个字符串中。
的更多信息答案 3 :(得分:0)
如Plirkee,AxelH和chengpohi所述,原始值不正确。
我们设法从DB(2017年2月5日)而不是(2 \ 5 \ 2017)获得不同的形式,然后替换所有。