public static void main(String[] args) {
String str1 = "string{01}";
String str2 = "string{02}";
str1.replace("{01}", "IN");
System.out.println("替换后的字符串1" + str1);
System.out.println("替换后的字符串2" + str2.replace("{02}", "IN"));
}
上面这个例子的运行结果如下显示:
可以发现字符串1没有被替换,字符串2替换了。这是什么原因呢?看一看API文档或许就一目了然了。
replace这个方法无论对你的旧字符串怎么改变,旧字符串都是保留的,除非你又把旧字符串进行了赋值。替换后的新字符串,replace会自动帮你new一个出来,再返回给你。或者这样解释:
str1.replace("{01}", "IN");
上面这句整体是一个新的字符串,但是str1还是旧的。