Java 为什么三元运算符需要放在括号中?
我有以下代码:Java 为什么三元运算符需要放在括号中?,java,Java,我有以下代码: public static void main(String[] args) { String str1 = "one"; String str2 = "two"; String str3 = "three"; String str4 = "four"; String str5 = null; String str6 = "six"; String str7 = "se
public static void main(String[] args) {
String str1 = "one";
String str2 = "two";
String str3 = "three";
String str4 = "four";
String str5 = null;
String str6 = "six";
String str7 = "seven";
char seperator = ',';
String str = str1 + seperator + str2 + seperator + str3 + seperator + str4
+ seperator + (str5==null?"":str5) + seperator + str6 + seperator + str7;
System.out.println(str);
}
结果是:
one,two,three,four,,six,seven
如果我去掉三元运算符周围的括号,则结果如下:
null,six,seven
请解释一下这种行为好吗?如果删除括号,它会将所有字符串加在一起,并检查空值,如下所示:
String str = ((str1 + seperator + str2 + seperator + str3 + seperator + str4
+ seperator + str5)==null?"":str5) + seperator + str6 + seperator
它添加了
str1+分隔符+str2+…+str5
一起,然后检查它们是否等于null
,它们不是,所以它打印str5
,即null
,然后打印调用的其余部分。它首先将str5与第一部分连接,然后检查它是否等于null