加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 04:42:31 所属栏目:Java 来源:网络整理
导读:亲爱的 Java大师! 请你解释一下,为什么串联连接在连接三元运算符的2个结果时在Java中无法正常工作? 例: String str = null;String x = str != null ? "A" : "B" + str == null ? "C" : "D";System.out.println(x); 输出为“D”,但我期望“BC”. 由于运算
亲爱的 Java大师!

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

例:

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

输出为“D”,但我期望“BC”.

由于运算符的优先考虑,我怀疑它是这样的,但我不确定,关于我们如何在上面的案例中得到“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");

并且因为你只是将str与null进行比较并且两个条件语句几乎相同,所以它可以缩短为:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读