意外的布尔结果

问题描述

| 我有以下Java代码:
String p = \"seven\";
String q = \"teen\";
p + q == \"seventeen\";
为什么最后一行返回
false
而不是
true
?     

解决方法

因为您应该使用
equals
方法进行
String
比较。
==
运算符比较对象引用,这些引用对于每个对象都是唯一的。在将对象与其自身进行比较时,对于
==
比较,您只会得到
true
。 试试
(p + q).equals(\"seventeen\");
注意,java中的“ 4”比较是区分大小写的,因此您可能还想看一看“ 10”方法。     ,(p + q).intern()== \“十七\” 实习生将从池中返回字符串     ,比较
Strings
时,必须使用
String
方法
equals
equalsIgnoreCase
,否则将比较对象。由于
p
+
q
\"seventeen\"
是不同的对象,因此您的结果将为假。     ,因为==是引用相等而不是逻辑相等。字符串是不可变的,因此您将获得新的字符串,该字符串将不会在内存中位于同一位置。尝试:
String p = \"seven\";
String q = \"teen\";
(p + q).equals(\"seventeen\");
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...