如何在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
。。。。