当前位置: 首页 > 知识库问答 >
问题:

为什么“F”“alse”不是==“False”?[副本]

东方乐
2023-03-14

可能重复:
如何比较Java中的字符串?

我不明白为什么声明的变量不一样。

ex代码:

 String firstPart = "F";
 String whole = "False";
 String connected = firstPart + "alse";
 System.out.println(connected == whole);

现在,这产生了一个布尔值,我认为它是“真的”,但它不是,结果是假的,我不明白为什么。

有人能解释一下吗?

共有3个答案

皇甫心思
2023-03-14

您应该使用equals()比较字符串。像这样:

system.out.println(connected.equals(全));

鲁华茂
2023-03-14

String connected = firstPart + "alse";

创建一个新的String对象,其中包含一个新的底层字符数组和一个新引用。

因此,当您比较引用(使用“==”)时,将不会得到匹配。如果您使用equals()比较实际的对象内容,那么您将得到想要的结果(因为String.equals()比较底层字符数组的内容)

邹德泽
2023-03-14

您正在比较引用,而不是值。

您需要使用equals

connected.equals(whole);
 类似资料:
  • 可能重复: 如何比较Java中的字符串? 我不明白为什么声明的变量是不一样的。 ex代码: 现在这产生了一个布尔值,我以为它是真的,但它不是,它是假的,我不明白为什么。 有人能解释一下吗?

  • 为什么以下输出为True? 这将始终输出,即使条件似乎表明并非如此。如果我删除括号,那么它可以工作,但我不明白为什么。

  • 问题内容: 使用括号时,这些语句为什么能按预期工作: 但是 ,如果没有括号,它会返回吗? 问题答案: 基于有关操作符优先级的python 文档 : 请注意,比较,成员资格测试和身份测试均具有相同的优先级,并且具有“比较”部分中所述的从左到右的 链接 功能。 因此,实际上您有一个链接语句,如下所示: 您可以假定中心对象将在2个操作和其他对象之间共享(在这种情况下为False)。 并且请注意,对于所有

  • 问题内容: 我正在阅读一个python脚本,该脚本接受XML文件的输入并输出XML文件。但是,我不了解打印语法。可有人请解释什么的呢? 问题答案: 该方法格式化字符串字面量 和它的新功能。 甲 格式的字符串文字 或 F-串 是前缀字符串文字或。这些字符串可能包含替换字段,这些替换字段由花括号分隔。尽管其他字符串文字始终具有恒定值,但是格式化的字符串实际上是在运行时评估的表达式。 格式化字符串文字的

  • 罗马数字颠倒一百 拉丁文小写字母反转C 变成数字二 变成数字三 为什么Python认为这些不是数字?

  • 问题内容: 我找到了JavaDoc的方法: 返回:如果此线程已被中断,则返回true;否则返回false。 否则为假。 我对这种方法的理解有误。此外,我可能会误解Thread中的“中断”概念。 欢迎任何解释!谢谢! 程式码片段: 在线程定义中: 调用: 问题答案: 引发异常后,线程不再处于中断状态。