Java 替换“\&引用;加上&引用;在爪哇

Java 替换“\&引用;加上&引用;在爪哇,java,regex,string,Java,Regex,String,我的问题很简单: 如何将“\”替换为“?” 我试过这个: str.replaceAll("\\", ""); 但我有一个例外 08-04 01:14:50.146: I/LOG(7091): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1: 你应该试试这个: str.replaceAll("\\\\", ""); \必须在regex中转义=>您应该在字

我的问题很简单:

如何将“\”替换为?”

我试过这个:

str.replaceAll("\\", "");
但我有一个例外

08-04 01:14:50.146: I/LOG(7091): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1:
你应该试试这个:

str.replaceAll("\\\\", "");

\
必须在regex中转义=>您应该在字符串转义之后编写
\
,并且每个
\
必须在java=>中转义,这就是为什么我们在字符串转义之后有4个
\
\
\
,这也是regex try中的转义字符

String newStr = str.replaceAll("\\\\", "");
(不要忘记指定结果)

此外,如果在需要正则表达式的地方使用某些字符串作为输入,则使用以下字符串更安全:

如果不使用
replaceAll
(需要一个正则表达式)来进行此操作,则更简单-只需使用
replace
(需要一个普通字符串)。除非确实需要正则表达式,否则不要使用正则表达式形式。这只会让事情变得更复杂

不要忘记,仅仅调用
replace
replaceAll
是毫无意义的,因为字符串是不可变的-您需要使用返回结果:

String replaced = str.replace("\\", "");

虽然我认为你是正确的,但你应该解释一下为什么也要这样做。java escape\和regex需要escape\so 2X2=4:)我喜欢这样一个事实,即你可以从更大的角度来看。可能的重复
String replaced = str.replace("\\", "");