replace为什么不好使了

	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还是旧的。

猜你喜欢

转载自blog.csdn.net/u011055819/article/details/80467184