String aa = "aa";
aa.replace("a", "b");
System.out.println(aa);
aa.replace("b", "a");
System.out.println(aa);
aa.replaceAll("a", "b");
System.out.println(aa);
aa.replaceAll("b", "a");
System.out.println(aa);输出结果都是aa
因為 String是不可改變的 你要用新建一個變量去接受他
String aa = aa.replace("a", "b");
replace,replaceAll函数,是不会改变其调用对象本身的,只是其返回值把相应的字符串或字符替换掉。
生效了,但是Java的String是不可变类型,replace方法只会返回一下新的字符串对象,而原来的字符串的值是不会改变的。
你可以直接输出System.out.println(aa.replace("a", "b"))或者定义一个新变量指向replace返回的结果。
replace()和 replaceAll() 方法不会改变调用方法的string对象本身,而是返回一个 替换后的string 结果;
所以可以 重新使用一个string 变量去接收返回值;
常用用法:
String str1=“aab”;
String str2 = str1.replace("a", "b");
syso(str2);
结果:bbb;
aa = aa.replace("a", "b");
aa = aa.replace("a", "b");
你打印的是aa,需要重新指向
你所有的replace后都没重新赋值
你只是执行了替换操作,但没有进行重新赋值,所以aa的值一直没变。
你代码改成这样就好了
aa = aa.replace(“a”,“b”);