Java中字符串的优先级

时间:2015-03-28 03:14:37

标签: java

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

总共35

35total

1 个答案:

答案 0 :(得分:1)

Java编译器从左到右处理表达式中的运算符+。当涉及

中的第一个+
x + y + "total"

它在两侧看到int,因此它会执行添加。当Java编译器处理第二个+时,它会看到intString,并将运算符解释为字符串连接。

在第二个和第三个表达式中,+运算符的左侧是一个字符串,因此所有运算符都被解释为连接。

如果要强制执行特定的操作顺序,请使用括号。例如,如果您想在第三个示例中获得总计,请将添加内容括起来,如下所示:

String s8 = " " + (x + y) + "total";