如何在Java中检查和替换包含特殊字符(\)的字符串?

3

我有一个字符串 str=p2\7\2010,我想检查并替换它,如果str.contains("\"),则将其替换为("\\\\")而不是\。我无法在Java中完成此操作,请您提供一些帮助。

3个回答

4
使用 String.replace()

if (str.contains("\\")) {
    str = str.replace("\\", "\\\\");
}

你也可以使用String.replaceAll(),但它使用正则表达式,所以在这种琐碎的情况下速度较慢。

更新:

String.replace()的实现也基于正则表达式,但是编译模式为Pattern.LITERAL


如何检查字符串中是否包含反斜杠? - subodh
1
@subodh:if (str.contains("\\")) 将检查 str 是否包含 \。但这是多余的。你可以直接调用 str = str.replace("\\", "\\\\");,如果没有要替换的内容,你将得到原始字符串的副本。 - Michał Šrajer
@dacwe:你说得对。这就是为什么我加了评论的原因。然而,作者明确要求“我想检查和替换”,所以我提供了带有检查的代码。 - Michał Šrajer
谢谢:但是在执行str = str.replace("\", "\\"); 时,它会生成“p20” p2和垃圾不可读格式。 - subodh
@Michał Šrajer:我的字符串是str="p2\7\2010",我需要的是str="p2\\7\\2010"。可能是str="p2\7",那么我需要str="p2\\7",如果它是str="",那么str="\\"。 - subodh
显示剩余2条评论

0

试试这个,

String newString = oldString.replace("/", "//");

或者尝试使用模式方法,

Pattern pattern = Pattern.compile("/"); 
Matcher matcher = pattern.matcher("abc/xyz"); 
String output = matcher.replaceAll("//"); 

0

str.contains("\"") 匹配包含 " 字符的字符串。

你可能需要的是 str.replaceAll("\\", "\\\\")

另外,如果要检查字符串是否包含 \,则需要使用str.contains("\\") ,因为 \ 是一个特殊字符,必须转义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接