<分区>
我一直不明白为什么整数在连接时被视为字符串文字。例如
String s=10+30+" Sachin "+40+40;
System.out.println(s);
输出为:40 Sachin 4040
。
为什么 40+40
没有被添加,为什么 10+30
被添加?
标签 java
<分区>
我一直不明白为什么整数在连接时被视为字符串文字。例如
String s=10+30+" Sachin "+40+40;
System.out.println(s);
输出为:40 Sachin 4040
。
为什么 40+40
没有被添加,为什么 10+30
被添加?
最佳答案
表达式从左到右求值。前两个操作数都是 int
(10 和 30),所以第一个 +
执行加法。
下一个 +
得到一个 int
操作数 (40) 和一个 String
操作数 ("Sachin "),所以它将 >int
到 String
并执行 String
连接。
接下来的 +
运算符得到一个 String
操作数和一个 int
操作数,并且还执行 String
连接。
如果您想要不同的评估顺序,请使用括号:
String s=10+30+" Sachin "+(40+40);
这将输出 40 Sachin 80
。
关于java - 为什么在一个字符串字面量之后,所有的+都会被当作字符串连接运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34589340/