String regexp = "\'";
String str = "'SL'";
System.out.println("替换前:" + str);
str = str.replaceAll(regexp, "");
System.out.println("替换后:" + str);
我开始时犯了个很弱智的错误,以至于现在搞了近二十分钟才出来。就是把上面的
str = str.replaceAll(regexp, "");
换成
str.replaceAll(regexp, "");
然后再打印,发现结果始终是 ’SL',
后来恍然大悟,String类被final修饰,是不可变的。所以对String对象施加任何操作都不会改变它的内容。而 str.replaceAll(regexp, ""); 相当于创建了一个新的字符串对象,即去掉了单引号的源字符串。 再修改字符串引用 str 指向新的字符串。则现在打印的就是去掉单引号后的字符串了。
用replaceAll 或者str.subString(str.indexOf("'")+1,str.lastIndexOf("'"));