gpt4 book ai didi

java - 为什么 toCharArray() 为相同的对象返回不同的值?

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

以下程序从 toCharArray() 函数返回 3 个不同的值。谁能告诉我这是为什么?

public class StrEqual {
public static void main(String args[]){
String s1="hi";
String s2=new String("hi");
String s3="hi";

if(s1==s2){
System.out.println("s1 and s2 equal");

}else{
System.out.println("s1 and s2 not equal");
}

if(s1==s3){
System.out.println("s1 and s3 equal");
}else
{
System.out.println("s1 and s3 not equal");


}
System.out.printf("\n%s",s1.toCharArray());
System.out.printf("\n%s",s2.toCharArray());
System.out.printf("\n%s",s3.toCharArray());
}//end main
}//end StringComparision

最佳答案

不可变String 对象不同,字符数组是可变的。这意味着每次调用 toCharArray 都必须创建并返回一个不同的对象,即使您在同一个 String 对象上调用它也是如此。

String a = "a";
char[] a1 = a.toCharArray();
char[] a2 = a.toCharArray();
System.out.println(a1==a2); // Prints "false"

Demo.

关于java - 为什么 toCharArray() 为相同的对象返回不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793978/

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