这是我的代码:
package test;
public class Stringtest {
public static void main(String[] args) {
String a = " love y ou !! ";
String b = a.trim();
b.replaceAll("\\s+","");
System.out.println(b);
}
}
但结果仍然是:"爱你ou !!"。它只是删除字符串开头和结尾的空格。我做错了吗?
答案 0 :(得分:4)
字符串是不可变的,这意味着您无法更改它们。这就是为什么replaceAll
不会影响原始字符串的原因,而是创建一个新的替换值,您需要将其存储在某处,甚至可能在原始引用中。
请尝试使用
b = b.replaceAll("\\s+", "");
答案 1 :(得分:2)
replaceAll
方法将在删除所有空格后返回字符串,并且因为String是不可变的,所以将replaceAll的结果返回给b,如:
b = b.replaceAll("\\s+","");//Note you dont need to trim if you want to replace every spaces.
答案 2 :(得分:0)
运行以下内容,您将了解自己的所作所为。
System.out.println(b.replaceAll("\\s+",""));
string.replace()
返回替换后的字符串
答案 3 :(得分:0)
您忘记存储从replaceAll
方法返回的子字符串。
试
b = b.replaceAll("\\s+","");