如何在Java中删除字符串中的反斜杠?

如何在Java中删除字符串中的反斜杠?,java,string,Java,String,我有一个包含反斜杠字符(\)的字符串值。我的目标是将其替换为字符(\uu) 我按照这个问题中提供的解决方案做了以下工作 String x=“2\5\2017”; x=x.replaceAll(“\\\\”,“\”) 但是我总是得到(27)作为x的值。注意:2和7之间有未知字符。在控制台中,我可以将其视为一个小正方形。我认为您希望将输入字符串重新定义为: String x = "2\\5\\2017" 那么x的结果将是: 2_5_2017 我认为您希望将输入字符串重新定义为: String x

我有一个包含反斜杠字符(
\
)的字符串值。我的目标是将其替换为字符(
\uu

我按照这个问题中提供的解决方案做了以下工作

String x=“2\5\2017”;
x=x.replaceAll(“\\\\”,“\”)


但是我总是得到(
27
)作为
x
的值。注意:2和7之间有未知字符。在控制台中,我可以将其视为一个小正方形。

我认为您希望将输入字符串重新定义为:

String x = "2\\5\\2017"
那么
x
的结果将是:

2_5_2017

我认为您希望将输入字符串重新定义为:

String x = "2\\5\\2017"
那么
x
的结果将是:

2_5_2017

这是因为您没有在
x
“2\5\2017”
)中转义
\
),如果您没有在
x
中转义
\
,它会认为
\5
\201
(八进制将有3位)将是八进制数字。因此:

"2\5\2017"
将显示为:

2??7

所以你应该unescape像@harmlez那样。

这是因为你没有在
x
中逃逸你的
\
“2\5\2017”
),如果你没有在
x
中逃逸
\
,它会认为
\5
\201
(八进制将有3个数字)将是八进制数。因此:

"2\5\2017"
将显示为:

2??7
所以你应该unescape像@harmlez那样。

只需使用“\\\”在你的字符串中添加“\”。然后将其替换为“\u”

String x=“2\\5\\2017”;
x=x.replaceAll(“\\\\”,“\”)

“\”是一个特殊字符,要在字符串中看到“\”,我们需要在字符串中添加一个额外的“\”,如“\”

了解有关的详细信息只需使用“\\”在字符串中添加“\”。然后将其替换为“\u”

String x=“2\\5\\2017”;
x=x.replaceAll(“\\\\”,“\”)

“\”是一个特殊字符,要在字符串中看到“\”,我们需要在字符串中添加一个额外的“\”,如“\”


了解有关

的更多信息如Plirkee、AxelH和chengpohi所述,原始值不正确


我们设法从DB(2017年2月5日)而不是(2017年2月5日)获得一份不同的表格,然后替换所有工作。

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


我们设法从DB(2017年2月5日)而不是(2017年2月5日)获得了一个不同的表单,然后replaceAll开始工作。

您尝试过这两种解决方案吗?(
replaceAll
replace
)。备注:您需要在
x
中转义
\
也->
字符串x=“2\\5\\2017”
在字符串文字中,反斜杠是转义字符,这意味着
“2\5\2017”
被解释为4个字符,其中中间两个字符具有ASCII值
5
201
(作为八进制数字)。您需要以字符串文本形式转义反斜杠:
“2\\5\\2017”
@AxelH是的,我做了replace和replaceAll,得到了相同的结果。字符串值来自DB,如下所示:添加双斜杠不是硬编码值。您的问题不在
replace
-而是在原始字符串中。(其他人也提到了这一点)。要确认这一点,请尝试打印原始字符串,而不应用任何替换。。。看看会发生什么。@Salman您能确认您在示例中向我们显示的值是
System.out.print(x)的结果吗2##7
,那么我想不是。然后您应该检查您的方法以获得该值,因为问题来自DB或JDBC。您是否尝试了这两种解决方案?(
replaceAll
replace
)。备注:您需要在
x
中转义
\
也->
字符串x=“2\\5\\2017”
在字符串文字中,反斜杠是转义字符,这意味着
“2\5\2017”
被解释为4个字符,其中中间两个字符具有ASCII值
5
201
(作为八进制数字)。您需要以字符串文本形式转义反斜杠:
“2\\5\\2017”
@AxelH是的,我做了replace和replaceAll,得到了相同的结果。字符串值来自DB,如下所示:添加双斜杠不是硬编码值。您的问题不在
replace
-而是在原始字符串中。(其他人也提到了这一点)。要确认这一点,请尝试打印原始字符串,而不应用任何替换。。。看看会发生什么。@Salman您能确认您在示例中向我们显示的值是
System.out.print(x)的结果吗2##7
,那么我想不是。然后您应该检查方法以获取该值,因为问题来自DB或JDBC。字符串值来自DB,为“2\5\2017”如果没有双斜杠,如何将@Harmlezz解决方案应用于此case@Salman您的意思是,如果您在字符串值来自Db的那一刻打印出来,那么您的控制台中就会出现
2\5\2017
,而不是像@chengpohi提到的那样出现
2??7
?在这种情况下,你的例子是有缺陷的。。原因“2\\5\\2017”打印为
2\5\2017
…字符串值来自DB,为“2\5\2017”,没有双斜杠如何将@Harmlezz解决方案应用于此case@Salman您的意思是,如果您在字符串值来自Db的那一刻打印出它,那么您的控制台中就会出现
2\5\2017
,而不是像
2??7
(正如@chengpohi提到的)?在这种情况下,您的示例是有缺陷的。。因为“2\\5\\2017”打印为
2\5\2017
。。。。