当连接三元运算符的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"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – ReadFully()有窒息的风险吗?
- java – 读取文件和写入文件,其中包含UTF – 8(不同语言)的
- 验证Azure AD令牌签名失败JAVA
- java – 使用colourmaps在2D图形中表示3D数据的JFreeChart
- java – 无法在eclipse中突出显示文本/变量
- java – 读取属性文件
- JSP config.getInitParameter()方法获取初始参数的值
- Java函数式编程(十一):遍历目录
- java – 使用基于Spring MVC注释的控制器和@RequestMapping
- java.lang.NumberFormatException:对于输入字符串:“2011