我正在打印String
str =\'abc\'
。它的打印类似于\'abc'\
,而不是'abc'
。
我尝试过这个选项:str.replaceAll("\\", "");
但它给了我 java.util.regex.PatternSyntaxException:索引1附近的意外内部错误
任何人都可以帮助解决此问题。
答案 0 :(得分:0)
你为什么要使用正则表达式:
str = str.replace("\\", "");
如果必须使用正则表达式,则需要使用:
str = str.replace("\\\\", "");
正则表达式需要在Java中进行双重转义,因为String和regex引擎机器人需要转义。
答案 1 :(得分:0)
你的方法:
private static String getNewString(String str) {
str.replaceAll("\\\\", "");
System.out.println("The updated String : "+str);
return str;
}
将返回初始字符串,因为string是不可变的。 str.replaceAll将保持str原样,它将生成一个新字符串。
将您的测试用例更改为:
public static void main(String ...string) {
String str = "\\'a\\'";
System.out.println("The original String : "+str);
str = getNewString(str);
}
private static String getNewString(String str) {
String rez = str.replaceAll("\\\\", "");
System.out.println("The updated String : "+rez);
return rez;
}
答案 2 :(得分:0)
公共课Abc {
public static void main(String[] args) {
String str ="\'abc\'";
System.out.println(str);
}
}
输出:'abc'
这对我来说是正确的。