字符串连接运算符
加号 + 在 Java 中有两种含义,取决于两边的操作数类型:
- 两边都是数字:表示加法运算
- 任意一边出现字符串:表示字符串连接运算
char 与 String 的区别
| 类型 | 说明 | 示例 |
|---|---|---|
char | 字符类型,放在单引号中,只能有 一个 字符 | 'A'、'北' |
String | 字符串类型,放在双引号中,可以有 0 个或多个 字符 | "hello"、""、"www.foxdevelop.com" |
示例代码
public static void main(String[] args) {
int a = 12 + 3; // 加法运算,a = 15
String s = "www.foxdevelop.com";
String s1 = ""; // 空字符串,合法
String s2 = "www." + "foxdevelop.com"; // 字符串连接
System.out.println(s2); // 输出 www.foxdevelop.com
System.out.println(1 + 1); // 加法运算,输出 2
System.out.println(1 + "1"); // 字符串连接,输出 "11"(文本,非数字)
// 如果字符串与其他数据类型用 + 连接,其他数据会自动转换为字符串
System.out.println(10 + 20 + "30"); // 从左到右计算:10+20=30,然后 30+"30"="3030"
}Code language: JavaScript (javascript)
关键规则
- 类型决定行为:
+两边只要有一边是String类型,就执行字符串连接,而非加法。 - 自动类型转换:当字符串与其他数据类型连接时,其他数据会自动调用
toString()转换为字符串。 - 从左到右计算:表达式
10 + 20 + "30"中,先算10 + 20 = 30(加法),再算30 + "30" = "3030"(连接)。如果写成"10" + 20 + 30,则结果是"102030"。