我的问题很简单:
如何将“\”替换为“”???
我试过这个:
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:
如果你不为此使用replaceAll
(它需要一个正则表达式),它会更简单 - 只需使用replace
(它需要一个纯字符串)。除非你真的需要正则表达式,否则不要使用正则表达式形式。它只会让事情变得更复杂。
不要忘记调用 replace
orreplaceAll
是没有意义的,因为字符串是不可变的——你需要使用返回结果:
String replaced = str.replace("\\", "");
\\
是\
在字符串转义之后,这也是正则表达式中的转义字符尝试
String newStr = str.replaceAll("\\\\", "");
(不要忘记分配结果)
此外,如果您使用一些字符串作为需要正则表达式的输入,则使用 IMO 会更安全Pattern#quote
:
String newStr = str.replaceAll(Pattern.quote("\\"), "");
你应该试试这个:
str.replaceAll("\\\\", "");
\
必须在正则表达式中转义=>你应该写,\\
每个\
都必须在java中转义=>这就是为什么我们有4\