Java教程
Java标识符与关键字
Java变量
Java数据类型
Java运算符
Java控制语句
Java方法
Java面向对象
Java对象的创建和使用
Java封装
Java中static和this
Java继承
Java方法覆盖和多态
Java super
Java基础练习题

Java字符串连接运算符

在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面向对象内容的时候一定会用到,到那时候再详细学习。