在java语言中所有的字符串都使用半角双引号括起来的,字符串属于引用数据类型,不属于基本数据类型的范畴,怎么定义一个字符串的变量呢?例如:String name = “jack”;,这就类似于int i = 10;是一样的,int是一种整数类型,i是变量,10是整数型字面量。那么String则是一种字符串类型,name是变量,”jack”是字符串型字面量。在java编程中对字符串的操作是非常频繁的,例如字符串的连接操作,此时就需要使用“+”字符串连接运算符了。
实际上“+”运算符在java语言中有两个作用,作用一是对数字进行求和运算,作用二就是字符串连接运算,那么它在什么时候是进行求和,什么时候又进行字符串连接呢?大家可以这样进行区分,当“+”运算的时候,两边的操作数都是数字的话,一定会进行求和运算,只要其中有一个操作数是字符串类型,那么一定会进行字符串拼接运算,字符串拼接之后的结果还是字符串类型。需要注意的是,当一个表达式当中有多个“+”,并且在没有小括号的前提下,遵循自左向右的顺序依次执行。我们来看一段程序:
public class PlusTest01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
//加号两边都是int类型,执行求和运算
int c = a + b;
/*
* 以下代码虽然有两个加号,第一个加号在双引号当中,
* 不起任何作用,只是一个普通字符串,第二个加号由于
* 左边操作数是一个字符串,所以这个加号一定会进行
* 字符串连接,连接之后的结果还是一个字符串。
*/
System.out.println("a + b = " + c); //a + b = 30
//分析以下程序的输出结果?哪些加号进行求和,哪些加号进行字符串连接
System.out.println(a + " + " + b + " = " + a + b);
//分析以下程序的输出结果?哪些加号进行求和,哪些加号进行字符串连接
System.out.println(a + " + " + b + " = " + (a + b));
//定义一个字符串类型变量
String name = "jack";
/*
* 字符串拼接在实际开发中很常用,拼接的时候是有口诀,大家记住,
* 将变量放到字符串当中进行拼接,可以这样做:1、在拼接的位置添加
* 一个英文双引号;2、在双引号中间添加两个加号;3、把字符串变量放到
* 两个加号中间。
*/
System.out.println("登录成功,欢迎" + name + "回来!");
}
}
对于程序System.out.println(a + " + " + b + " = " + a + b);的分析见下图:
图5-2:字符串连接运算
对于程序System.out.println(a + " + " + b + " = " + (a + b));的分析见下图:
图5-3:字符串连接运算
总之,使用“+”进行字符串拼接在开发中使用太频繁了,大家一定要将其掌握,尤其是怎么将一个变量放到字符串当中,你还记得以上程序的口诀吗?
其它运算符instanceof、new等在讲Java面向对象内容的时候一定会用到,到那时候再详细学习。