gpt4 book ai didi

java - 连接三元运算符的 2 个结果时,字符串连接在 Java 中无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:16 26 4
gpt4 key购买 nike

尊敬的 Java 大师们!

请你解释一下,为什么在连接三元运算符的 2 个结果时,字符串连接在 Java 中不能正常工作?

例子:

String str = null;
String x = str != null ? "A" : "B" + str == null ? "C" : "D";
System.out.println(x);

输出是“D”,但我期望是“BC”。

我怀疑它是这样工作的,因为运算符(operator)的优先级,但我不确定,对于上述情况,我们究竟是如何得到“D”的。这种情况采用什么计算算法?

最佳答案

解释为如下代码:

String x = str != null ? "A" : ("B" + str == null ? "C" : "D");

"B"+ str 不为空,因此它将被评估为 "D"

借助 OSborn 的回答,您可以使用此代码执行您期望的操作:

String x = (str != null ? "A" : "B") + (str == null ? "C" : "D");

并且由于您只是将 strnull 进行比较,并且两个条件语句几乎相同,因此可以这样缩短:

 String x = (str != null ? "AD" : "BC");

关于java - 连接三元运算符的 2 个结果时,字符串连接在 Java 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22117029/

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