java中字符串中这个优先级的解释是什么?
public class PrecedenceInStrings {
public static void main(String[] args){
int x = 3;
int y = 5;
String s6 = x + y + "total";
String s7 = "total " + x + y;
String s8 = " " + x + y + "total";
System.out.println(s6 + "\n" + s7 + "\n" + s8);
}
}
输出:
8total
总共3535total
答案 0 :(得分:1)
Java编译器从左到右处理表达式中的运算符+
。当涉及
+
时
x + y + "total"
它在两侧看到int
,因此它会执行添加。当Java编译器处理第二个+
时,它会看到int
和String
,并将运算符解释为字符串连接。
在第二个和第三个表达式中,+
运算符的左侧是一个字符串,因此所有运算符都被解释为连接。
如果要强制执行特定的操作顺序,请使用括号。例如,如果您想在第三个示例中获得总计,请将添加内容括起来,如下所示:
String s8 = " " + (x + y) + "total";