当”+“操作中出现字符串时,这个”+“是字符串连接符,而不是运算符
例如:
"123"+123;//结果为123123
当连续进行”+“操作时,从左到右逐个执行
例如:
1+99+"哈哈哈哈"//结果为:100哈哈哈哈
综上来看,也就是说,有字符串参与就是拼接,没有字符串参与就是运算
例如以下代码:
package com.wy.csdn;
public class Test4 {
public static void main(String[] args) {
System.out.println(3.7+"abc");
System.out.println("abc"+true);
System.out.println('中'+"abc"+true);
int age = 18;
System.out.println("我的年龄是"+age+"岁");
System.out.println( "我的年龄是"+"age"+"岁");
System.out.println(1+2+"abc"+2+1);
}
}
结果为:
3.7abc
abctrue
中abctrue
我的年龄是18岁
我的年龄是age岁
3abc21
挨个分析:
1.因为有字符串参与,所以直接拼接
2.同理。也是字符串参与,也是拼接
3.此时是连续的,而且有字符串参与,进行拼接操作,所以是“中abc”再与true拼接,等于中abctrue
4.此时age是一个变量,直接将值代入即可
5.连续的字符串拼接得到的
6.先是没有字符串,所以直接运算得到3,再与字符串拼接,得到“3abc”,再次拼接得到“3abc2”,再次拼接得到:“3abc21”
当然,还有别的情况,比如以下代码:
System.out.println(1+'a');
System.out.println('a'+"abc");
此时为字符+数字类型:这类型运算时,会把字符通过ASCll码查询到对应的数字再进行计算
所以1+'a'结果为98
下面的就是简单的字符拼接,因为有字符串的参与,所以为:aabc