5.4 字符串的操作
字符串的操作主要包括字符串的截取、分割、替换、比较、大小写转换等,下面进行详细介绍。
5.4.1 截取字符串
String类中的substring()方法可以对字符串进行截取操作,该方法适用于截取字符串中的一部分内容,语法格式如下:
参数介绍如下:
· str:任意字符串对象。
· beginIndex:起始索引。
· endIndex:结束索引。
【例5.13】字符串的截取操作(源代码\ch05\5.13.txt)。
运行结果如图5-13所示。
图5-13 截取字符串
需要注意的是,字符串中的索引是从0开始的,在字符串截取时,只包括开始索引,不包括结束索引。
5.4.2 分割字符串
String类中的split()方法可以对字符串进行分割操作,该方法适用于将字符串按照某个字符串中的某个分隔符进行分割,语法格式如下:
str. split(regex);
参数介绍如下:
· str:任意字符串对象。
· regex:分隔符表达式。
【例5.14】字符串的分割操作(源代码\ch05\5.14.txt)。
运行结果如图5-14所示。
图5-14 分割字符串运行结果
5.4.3 替换字符串
使用replace()方法可以将字符串中的一些字符用新的字符来替换,语法格式如下:
str.replace(oldStr,newStr);
参数介绍如下:
· str:任意字符串对象。
· newStr:替换后的字符序列。
· oldStr:要被替换的字符序列。
☆大牛提醒☆
replace()方法返回的是一个新的字符串,如果字符串str中没有找到需要被替换的子字符序列oldStr,则将原字符串返回。
【例5.15】编写程序,将《Java入门很轻松》书名进行更新替换(源代码\ch05\5.15.txt)。
运行结果如图5-15所示。
图5-15 替换字符串运行结果
5.4.4 去除空白内容
使用trim()方法可以去除字符串两端处的空格。语法格式如下:
str.trim();
主要参数为str,即任意字符串对象。
【例5.16】编写程序,定义一个字符串,然后去除该字符串首尾处的空格(源代码\ch05\ 5.16.txt)。
运行结果如图5-16所示。
图5-16 去除字符串的空格运行结果
5.4.5 比较字符串是否相等
使用equals()方法可以比较两个字符串是否相等。当且仅当进行比较的字符串不为null,并且与被比较的字符串内容相同时,结果才为true,语法格式如下:
str. equals(anotherstr);
参数介绍如下:
· str:任意字符串对象。
· anotherstr:进行比较的字符串。
【例5.17】使用equals()方法比较两个字符串(源代码\ch05\5.17.txt)。
运行结果如图5-17所示。
图5-17 判断字符串是否相等运行结果
equals()方法和“==”的作用不同。equals()方法比较的是字符串内的字符是否相等,而“==”用于比较两个字符串对象的地址是否相同。因此,即使两个字符串对象的字符内容完全相同,使用“==”判断时结果也是false。因此如果要比较字符串的字符内容是否相等只能使用equals()方法。
【例5.18】使用“==”比较两个字符串(源代码\ch05\5.18.txt)。
运行结果如图5-18所示。
图5-18 使用“==”比较字符串运行结果
5.4.6 字符串的比较操作
使用compareTo()方法可以按字典顺序比较两个字符串。使用compareToIgnoreCase()方法也可以按字典顺序比较两个字符串,但不考虑大小写,语法格式如下:
public int compareTo(String str) public int compareToIgnoreCase(String str)
参数介绍如下:
· 返回值:如果参数字符串等于此字符串,则返回值0;如果此字符串按字典顺序小于字符串参数,则返回一个小于0的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于0的值。
· str:要做比较的字符串。
【例5.19】compareTo()方法和compareToIgnoreCase()方法的使用(源代码\ch05\5.19.txt)。
运行结果如图5-19所示。
图5-19 使用compareTo()方法和compareToIgnoreCase()方法运行结果
在例5.19中,定义了三个字符串str1、str2和str3,分别使用compareTo()方法和compareToIgnoreCase()方法对它们进行比较。
(1)使用compareTo()方法比较字符串str1和str2,由于字符串str1中首字符j在字典中的Unicode值小于字符串str2中首字符s,所以字符串str1小于字符串str2。
(2)使用compareToIgnoreCase()方法比较字符串str1和str3,由于此方法比较时忽略大小写,因此两个字符串str1和str3相等。
5.4.7 字符串大小写转换
通过方法可以将字符串转成数组,并将字符串中的字符进行大小写转换。使用toCharArray()方法将一个字符串转换为一个字符数组,使用valueOf()方法将一个int类型的数字转换为字符串。
使用toLowerCase()方法可以实现字符串的大写字母转换为小写字母,使用toUpperCase()方法可以实现字符串的大写字母转换为小写字母,语法格式如下:
str.toLowerCase(); str.toUpperCase();
主要参数为str,即任意字符串对象。
【例5.20】字符串大小写的转换操作(源代码\ch05\5.20.txt)。
运行结果如图5-20所示。
图5-20 字符串大小写转换运行结果