Java 中 + 号的一个用法
关于 + 号的用法
-
拼接字符串
-
基本运算
学习过程中发现了一个有趣现象!我的预期是想让第一段输出为 你好30,但运行结果和我预期不同。代码如下。
public class Demo5 { public static void main(String[] args) { int a = 10; int b = 20; String name; System.out.println(name="你好"+a+b); System.out.println(name); System.out.println(a+b+"你好"); } }
运行结果
分析
+号有连接字符串的作用
- 当+号的左侧是 String类型 的时候,会自动把右侧也转换成 String类型,即把a和b的值的转换成String类型
所以运行结果为:
你好1020
- 当+号的左侧不是String类型时,会先运算a+b,再把a+b的值转为字符串与右侧的 “你好” 拼接
所以运行结果为:
30你好
解决办法
把第一个输出语句改为
public class Demo5 {
public static void main(String[] args) {
int a = 10;
int b = 20;
String name;
System.out.println(name="你好"+(a+b)); // 把a+b用括号括起来
System.out.println(name);
System.out.println(a+b+"你好");
}
}
输出结果:
达到预期!