java中的string类中内容一旦被初始化就不能改变为啥还有replace方法呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的string类中内容一旦被初始化就不能改变为啥还有replace方法呢?相关的知识,希望对你有一定的参考价值。

内容被初始化了但是还有replace方法改变内容 ,怎样解释这种情况啊?多谢

replace虽然没有改变原字符串,但是replace返回了新的字符串。
其过程:取原字符串值取出放入内存中,替换生成一个新的字符串,返回新字符串,从而得到了两个字符串。

另:Java中的String类是声明为final的,一旦建立String对象之后它的值的内容是无法修改的,但是StringBuffer类弥补了String类的不足,StringBuffer类的内容可以修改。
参考技术A replace方法并不能改变字符串本身的,只是replace方法能返回一个处理后的字符串而已,例如:
String s="hello";
System.out.println(s.replace("h","H"));
System.out.println(s);
输出结果:
Hello
hello本回答被提问者采纳
参考技术B replace是返回了一个新的字符串,
String aaa = "aaa";
String bbb = aaa.replace("a","b");
后aaa="aaa" ,bbb="bbb"
参考技术C 返回的是一个新的字符串
Returns a new string resulting from replacing all occurrences of
oldChar in this string with newChar

src : return new String(0, len, buf);

以上是关于java中的string类中内容一旦被初始化就不能改变为啥还有replace方法呢?的主要内容,如果未能解决你的问题,请参考以下文章

Java API

Java 之不小心修改对象值

String字符串的常用方法

Java的String对象不能改变?

Java面试集合

[转] Java中的finalstaticthissuper