求java中怎么把字符串中的单引号去掉
例如:'SL' 去掉后变成SL
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 指向新的字符串。则现在打印的就是去掉单引号后的字符串了。
可以按照以下java例子进行操作。
1、java编码举例:
String regexp = "\'";
String str = "'SL'";
System.out.println("替换前:" + str);
str = str.replaceAll(regexp, "");
System.out.println("替换后:" + str);
2、原因分析:String类被final修饰,是不可变的。所以对String对象施加任何操作都不会改变它的内容。而 str.replaceAll(regexp, ""); 相当于创建了一个新的字符串对象,即去掉了单引号的源字符串。 再修改字符串引用 str 指向新的字符串。则现在打印的就是去掉单引号后的字符串了。
第一个参数是正则表达式,查找单引号。
第二个参数是单引号替换成空, 即去掉单引号。
s=s.replace("'","");