字符串未在输出中打印
String not getting printed in the output
String r1 = "hello";
String r2 = "hello";
System.out.println("Result: " + r1 == r2);
我试过 运行 这段代码,但我没有在控制台中得到字符串输出。唯一打印的值是 r1==r2 结果,即 false.
这里的问题是我希望输出为“结果:false”,为什么只是打印 false。
我也知道应该使用 .equals,我只是想知道为什么在给定的情况下会出现这样的结果。
如果有人可以指出相关文档并帮助说明为什么会出现这种情况,那就太好了。
确实输出是“false”,因为首先完成串联,所以它是“Result: hello”,然后它与 returns false 的 r2 (“hello”) 进行比较。
这就是您在控制台中看到“false”的原因。
如果你想看到“Result: true”,你需要使用 equals 而不是 ==,因为这就是我们在 java 中比较字符串的方式。请参阅下文 post 以了解差异:
How do I compare strings in Java?
如果您真的想使用“==”比较它们,您需要添加方括号,以便在连接之前先进行比较。
String r1 = "hello";
String r2 = "hello";
System.out.println("Result: " + r1 == r2); // output: "false"
System.out.println("Result: " + r1.equals(r2)); // output: "Result: true"
System.out.println("Result: " + (r1 == r2)); // output: "Result: true"
因为被处理为
("Result: " + r1 ) == r2
即 false
。之所以这样处理是因为+
的优先级高于==
.
你还需要做的是获取字符串
System.out.println("Result: " + (r1 == r2));
这会给你 Result: true
要比较 strings
并按您想要的方式打印,您应该使用方法 equals()
。像这样:
String r1 = "hello";
String r2 = "hello";
System.out.println("Result: " + r1.equals(r2));
String r1 = "hello";
String r2 = "hello";
System.out.println("Result: " + r1 == r2);
我试过 运行 这段代码,但我没有在控制台中得到字符串输出。唯一打印的值是 r1==r2 结果,即 false.
这里的问题是我希望输出为“结果:false”,为什么只是打印 false。
我也知道应该使用 .equals,我只是想知道为什么在给定的情况下会出现这样的结果。
如果有人可以指出相关文档并帮助说明为什么会出现这种情况,那就太好了。
确实输出是“false”,因为首先完成串联,所以它是“Result: hello”,然后它与 returns false 的 r2 (“hello”) 进行比较。 这就是您在控制台中看到“false”的原因。
如果你想看到“Result: true”,你需要使用 equals 而不是 ==,因为这就是我们在 java 中比较字符串的方式。请参阅下文 post 以了解差异: How do I compare strings in Java?
如果您真的想使用“==”比较它们,您需要添加方括号,以便在连接之前先进行比较。
String r1 = "hello";
String r2 = "hello";
System.out.println("Result: " + r1 == r2); // output: "false"
System.out.println("Result: " + r1.equals(r2)); // output: "Result: true"
System.out.println("Result: " + (r1 == r2)); // output: "Result: true"
因为被处理为
("Result: " + r1 ) == r2
即 false
。之所以这样处理是因为+
的优先级高于==
.
你还需要做的是获取字符串
System.out.println("Result: " + (r1 == r2));
这会给你 Result: true
要比较 strings
并按您想要的方式打印,您应该使用方法 equals()
。像这样:
String r1 = "hello";
String r2 = "hello";
System.out.println("Result: " + r1.equals(r2));