当前位置: 首页 > 面试题库 >

字符串连接和比较在println语句中给出了意外结果

薛高澹
2023-03-14
问题内容

我不知道以下行为,

String str1= "abc";
String str2 = "abc";

System.out.println("str1==str2 "+ str1==str2);
System.out.println("str1==str2 " + (str1==str2))

以上语句的输出如下:

str1 == str2是

为什么会这样呢?为什么输出不是这样的:

str1 == str2是

str1 == str2是


问题答案:

+的优先级高于==
所以你的代码:

System.out.println("str1==str2 " + str1 == str2);

将有效地

System.out.println(("str1==str2 "+str1) == str2);

因此,您得到了false

在情况2

System.out.println("str1==str2 " + (str1==str2));

您已显式使用花括号str1str2(是true)进行比较,然后附加值。



 类似资料:
  • 我有两个向量: 我试图使用比较它们。不幸的是,给出了一个意想不到的结果。 虽然我希望: 那么,这是什么原因造成的呢?怎样才能达到预期的效果呢? 这个问题似乎与这样一个事实有关,即两个向量的最后一个元素与将更改为例如确实给出了预期的结果相同,并且还因为将设置为给出而不是。 编辑 换句话说,我希望丢失的元素(当长度不同时)作为零传递(只有似乎给出

  • 问题内容: 我试图在z DBOpenHelper扩展SQLOpenHelper类中编写一个方法。它应该评估数据库中是否存在相同名称的条目。 这是Contact类的相关部分: 现在这是奇怪的事情: 方案A:其中和 等于false。Eclipse调试器显示名称的foo和cname的foo具有不同的id。这两个变量都按之前在代码中所示填充。 方案B:像这样加载变量的地方: 方案C:等于true …但是…

  • 这让我总是虚伪。 我能做什么??我只希望bool在“on”时为True,在“null”时为false

  • 我试图使用hashlib对字节数组进行散列,但是我无法使散列与我期望的匹配(通过在线SHA256函数确认答案)。 我是这样做的: 在执行哈希之前,我打印出输入数据的十六进制摘要: 我做错了什么?

  • 我想我还没有在Java中得到的概念。 我尝试将字符串与枚举中的特殊字符相比较。 但话说回来: 我收到一个编译器错误: 我做错了什么?

  • 问题内容: 我很难尝试做一些简单的事情。这是代码: 我已经简化了,但这就是了解正在发生的一切的必要条件。变量“数据”是AJAX调用的结果(如果有区别的话)。问题在于它总是转到’else’语句,并警告’成功’,如果转到’else’则不应该。知道这里发生了什么吗? 编辑:这是jQuery中完整的AJAX代码: 然后在PHP响应中: 问题答案: 您可以使用以下方法在客户端修复它: 或者,一种更好的方法是