gpt4 book ai didi

java - java中的不可变字符串

转载 作者:行者123 更新时间:2023-12-01 06:35:14 31 4
gpt4 key购买 nike

我有基本的困惑。

String s2=new String("immutable");
System.out.println(s2.replace("able","ability"));
s2.replace("able", "abled");
System.out.println(s2);

在第一个打印语句中,它打印不变性,但它是不可变的,对吧?为什么这样?和在下一个打印声明中,它不会被替换>欢迎任何答案..

最佳答案

System.out.println(s2.replace("able","ability"));

在上面的行中,返回并打印了一个新字符串。

因为String#replce()

Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar.

s2.replace("able", "abled");

它执行replace操作,但没有将结果分配回。因此原始字符串保持不变。

如果您分配结果,您就会看到结果。

喜欢

String replacedString = s2.replace("able", "abled");
System.out.println(replacedString );

s2= s2.replace("able", "abled");
System.out.println(s2);

更新:

当你写行

System.out.println(s2.replace("able","ability"));

s2.replace("able","ability") 解析并返回传递给该函数的字符串。

关于java - java中的不可变字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18887749/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com