gpt4 book ai didi

Java 中的整数、字符串和 double

转载 作者:行者123 更新时间:2023-12-01 16:59:30 25 4
gpt4 key购买 nike

所以我周末正在为高中比赛进行练习,但我无法弄清楚为什么这个问题返回False False

String str = "12"; 
Integer num = new Integer(12);
Double val = new Double(12.0);
System.out.print(str.equals(num));
System.out.print(" " + num.equals(val));

最佳答案

如果您查看 StringInteger 类的 equals 方法,您就会明白原因:

字符串.equals:

public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}

整数.等于:

public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}

如您所见,因为所有 12"12"12.2 都是不同类的实例,因此等于返回false

关于Java 中的整数、字符串和 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778950/

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