如何从Java中删除String中的反斜杠?

时间:2017-05-02 06:05:09

标签: java string

我有一个包含反斜杠字符(\)的字符串值。我的目标是用字符(_)替换它。

我按照此问题How to remove the backslash in string using regex in Java?

中提供的解决方案执行了以下操作

String x = "2\5\2017"; x = x.replaceAll("\\\\", "_");

但我总是将{27)作为x的值。注意:2到7之间有未知字符。在控制台中,我可以看到它是一个小方块。

4 个答案:

答案 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中,我们需要添加一个额外的" \"喜欢" \\"在一个字符串中。

了解有关Special Characters

的更多信息

答案 3 :(得分:0)

如Plirkee,AxelH和chengpohi所述,原始值不正确。

我们设法从DB(2017年2月5日)而不是(2 \ 5 \ 2017)获得不同的形式,然后替换所有。