java - 为什么在一个字符串字面量之后,所有的+都会被当作字符串连接运算符?

标签 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 "),所以它将 >intString 并执行 String 连接。

接下来的 + 运算符得到一个 String 操作数和一个 int 操作数,并且还执行 String 连接。

如果您想要不同的评估顺序,请使用括号:

String s=10+30+" Sachin "+(40+40);  

这将输出 40 Sachin 80

关于java - 为什么在一个字符串字面量之后,所有的+都会被当作字符串连接运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34589340/

相关文章:

java - 循环等于()导致计算器溢出

java - 关于 Java String API 中的 split() 方法

java - java中路径名前导反斜杠

java - 编程新手, double 不会添加

java - 子类和父类(super class)

java中上传和存储图像的Java解决方案

java - 如何为我的游戏实现玩家界面?

java - VS Code 在本地存储库中看不到更新的依赖项

java - CascadeType 与 FetchType

java - 我想将 Facebook 帖子从公共(public)页面提取到 Java 应用程序