连接字符串

对于已声明的字符串,可以对其进行相应的操作,连接字符串就是字符操作中较简单的一种。可以对多个字符串进行连接,也可使字符串与其他数据类型进行连接。

连接多个字符串

使用 “+” 运算符可实现连接多个字符串的功能。“+” 运算符可以连接多个 String 对象并产生一个新的 String 对象。

【例10.1】先连接一副对联的上、下联,再分行输出到控制台上(实例位置:资源包\TM\sl\10\1)

在项目中创建 Join 类,在主方法中创建两个 String 型变量,它们的值分别是 “春色绿千里” 和 “马蹄香万家”,使用 “+” 运算符连接这两个 String 型变量和 “\n”,在控制台上输出连接后的字符串。实例代码如下:

public class Join { // 创建类
	public static void main(String args[]) { // 主方法
		String s1 = new String("春色绿千里"); // 声明String对象s1
		String s2 = new String("马蹄香万家"); // 声明String对象s2
		String s = s1 + "\n" + s2; // 将对象s1和s2连接后的结果赋值给s
		System.out.println(s); // 将s输出
	}
}

运行结果如图10.2所示。

image 2024 03 01 13 15 23 912
Figure 1. 图10.2 例10.1的运行结果

连接其他数据类型

字符串也可同其他基本数据类型进行连接。如果将字符串同其他数据类型数据进行连接,则会将其他数据类型的数据直接转换成字符串。

【例10.2】统计每天的阅读和上机时间(实例位置:资源包\TM\sl\10\2)

在项目中创建 Link 类,在主方法中创建数值型变量,实现将字符串与整型、浮点型变量相连的结果进行输出。实例代码如下:

public class Link { // 创建类
	public static void main(String args[]) { // 主方法
		int booktime = 4; // 声明的int型变量booktime
		float practice = 2.5f; // 声明的float型变量practice
		// 将字符串与整型、浮点型变量相连,并将结果输出
		System.out.println("我每天花费" + booktime + "小时看书;" + practice + "小时上机练习");
	}
}

运行结果如图10.3所示。

本实例实现的是将字符串常量与整型变量 booktime 和浮点型变量 practice 相连后的结果进行输出。在这里 booktime 和 practice 都不是字符串,当它们与字符串相连时会自动调用 toString() 方法并被转换成字符串形式,然后参与字符串的连接。

只要 “+” 运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串形式,所以应谨慎地将其他数据类型的数据与字符串相连,以免出现意想不到的结果。

如果将例10.2中的输出语句修改为:

System.out.println("我每天花费" + booktime + "小时看书;" + (practice + booktime) + "小时上机练习");

则例10.2修改后的运行结果如图10.4所示。

image 2024 03 01 13 32 11 724
Figure 2. 图10.3 例10.2的运行结果
image 2024 03 01 13 32 35 682
Figure 3. 图10.4 例10.2的输出语句被修改后的运行结果

为什么会这样呢?这是由于运算符是有优先级的,圆括号的优先级最高,因此先被执行,然后将结果与字符串进行相连。

编程训练(答案位置:资源包\TM\sl\10\编程训练)

【训练3】拼接字符串 字符串没有支持char类型参数的方法,如果想要将一个char类型变量转为字符串,最简单的方法就是拼接。请将字符“@”转成字符串。

【训练4】拼接古诗 用3种方法将“白日依山尽”和“黄河入海流”两句古诗拼接成一个字符串(每个诗句后要加标点)。