gpt4 book ai didi

java - 为什么 String.toLowerCase() 返回的字符串没有被保留?

转载 作者:行者123 更新时间:2023-11-29 10:08:29 24 4
gpt4 key购买 nike

我被要求预测这段代码的输出:

String party1 = "party";
String party2= "PARTY".toLowerCase();
if(party1==party2){
System.out.println("EQUAL");
}else{
System.out.println("NOT EQUAL");
}

我认为 toLowerCase() 的结果会自动被保留,因此会返回对 party1 的相同引用,但我错了,因为代码输出 “不等于”
toLowerCase()(还有toUpperCase())是否返回一个新的String

编辑:我没有使用 == 来比较字符串,我只是想知道 toLowerCase() 方法的行为

最佳答案

如果任何 String 操作的结果被内部化,池将以极快且不必要的速度增长。对 Spring 的任何中间操作都会在池中产生一个新元素。对于非常特定领域内的极少数情况,这将是有益的。因此,这不是默认策略,这就是 intern() 存在的原因。

String party1 = "party";
String party2 = "PARTY".toLowerCase().intern();
System.out.println(party1 == party2 ? "EQUAL" : "NOT EQUAL");

toLowerCase() 没有什么特别之处:自 String 以来,任何 String 方法都会返回一个新的 String s 是不可变的。

关于java - 为什么 String.toLowerCase() 返回的字符串没有被保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57426831/

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