Java 如何用特殊字符替换字符串的a部分
我想用Java 如何用特殊字符替换字符串的a部分,java,string,replace,Java,String,Replace,我想用“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 如果我做了str.replaceAll(“世界”,“世界”\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 我在替换的字符串中没有看到“\”字符,我希望它能显示“Hello\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
如果我做了str.replaceAll(“世界”,“世界”\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\代码>
我在替换的字符串中没有看到“\”
字符,我希望它能显示“Hello\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
str = str.replaceAll("World", "\\\\_\\\\_\\\\_\\\\_\\\\_");
\
是Java字符串中的转义字符。因此,为了表示一个文本\
,您需要用另一个\
作为\
来转义它
\
也是正则表达式引擎的转义字符。因此,Java字符串中的\\
将作为\
发送到正则表达式引擎,它不会被逐字处理,而是用于转义以下字符
要将\\
传递给regex引擎,您需要在Java字符串中包含\\\\
由于您要用另一个字符串替换一个字符串(而不是模式),因此实际上不需要regex,您可以使用string
类的replace
方法,如下所示:
input = input.replace("World", "\\_\\_\\_\\_\\_");
看看帖子。你需要使用4个反斜杠来插入一个反斜杠
要点是:在文字java字符串中,反斜杠是转义字符,因此文字字符串“\”是单个反斜杠。但在正则表达式中,反斜杠也是转义字符。正则表达式\匹配一个反斜杠。此正则表达式作为Java字符串,变为“\\”
因此,请尝试以下方法:
String str = "hello world";
System.out.println(str.replace("world","\\\\_\\\\_\\\\_\\\\"));
String str = "hello world";
System.out.println(str.replace("world","\\\\_\\\\_\\\\_\\\\"));