replace,replaceAll都不生效啊,jdk1.8

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”);