5.1 String 类
5.1.1声明字符串
在Java语言中字符串必须包含在一对双引号(”“)之内。
注:在Java中由双引号(”“)号包围的都是字符串,不能作为其他数据类型来使用。
声明:
String str = [null]
5.1.2 创建字符串
在Java语言中将字符串作为对象来管理,因此可以像创建其他类对象一样来创建字符串对象。
String(char a[])方法:
用一个字符数组a创建String对象
char a[]={'g','o','o','d'};
String s = new String(a);
\\等价于
String s = new String("good");
String(char a[], int offset, int length)
提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度
char a[]= {'s','t','u','d','e','n','t'};
String s = new String(a,2,4);
//等价于
String s = new String("uden");
String(char[] value)
该构造方法可分配一个新的String对象,使其表示字符数组参数中所有元素连接的结果。
除通过以上几种使用String类的构造方法来创建字符串变量外,还可通过字符串常量的引用赋值给一个字符串变量。
String str1,str2;
str1="we are students"
str2="we are students"
5.2 连接字符串
5.2.1 连接多个字符串
使用”+“运算符可实现连接多个字符串的功能。
注:Java中一句相连的字符串不能分开在两行写。可以用”+“连接。
5.2.2连接其他数据类型
其他数据类型会自动调用toString()方法。
注:只要”+“运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串形式。
5.3获取字符串信息
5.3.1获取字符串长度
使用String类的length()方法可获取声明的字符串对象的长度
语法如下:
str.length();
5.3.2 字符串查找
String类提供了两种查找字符串的方法,即indexOf()与lastIndexOf()方法。这两种方法都允许在字符串中搜索指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。
(1)indexOf(String s)
该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用字符串的indexOf()方法时,会从当前字符串的开始位置搜索s的位置,如果没有检索到字符串s,该方法的返回值是-1.
语法如下:
str.indexOf(substr);
(2)lastIndexOf(String str)
该方法用于返回指定字符串最后一次出现的索引位置。当调用字符串的lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串str,并将最后一次出现的str的索引位置返回。如果没有检索到字符串str,该方法返回-1。
语法如下:
str.lastIndexOf(substr);
注:如果lastIndexOf()方法中的参数是空字符串“”,则返回的结果与调用该字符串length()方法的返回结果相同。
5.3.3 获取指定索引位置的字符
使用charAt()方法将指定索引处的字符返回。
语法如下:
str.charAt(int index);
5.4 字符串操作
5.4.1获取字符串
通过String类的substring()方法可对字符串进行截取。
(1)substring(int beginIndex)
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。
语法如下:
str.substring(int beginIndex);
注:在字符串中空格占用一个索引位置
(2)substring(int beginIndex, endIndex)
该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。
语法如下:
substring(int beginIndex, endIndex);
5.4.2 去除空格
trim()方法返回字符串的副本,忽略前导空格和结尾空格
语法如下:
str.trim();
5.4.3字符串替换
replace()方法可实现将制定的字符或字符串替换成新的字符或字符串。
语法如下:
str.replace(char oldChar, char newChar)注:oldChar重复多次,则全部替换。oldChar要与字符串大小写对应好。
5.4.4 判断字符串的开始与结尾
startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。
startsWith()方法
该方法用于判断当前字符串对象的前缀是否是参数指定的字符串
语法如下:
str.startsWith(String prefix);
endsWith()方法
该方法用于判断当前字符串是否是以给定的子字符串结束
语法如下:
str.endsWith(String suffix);
5.4.5 判断字符串是否相等
对字符串对象进行比较不能简单的使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。
因此,要比较两个字符串内容是否相等,应使用equals()方法和equalsIgnoreCase()方法。
equals()方法:
如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较,返回true。
语法如下:
str.equals(String otherstr);
equalsIgnoreCase()方法
该方法忽略大小写。
str.equalsIgnoreCase(String otherstr);5.4.6按字典顺序比较两个字符串
compareTo()方法按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一正整数,如果两个字符串相等,则结果为0。
语法如下:
str.compareTo(String otherstr);
5.4.7 字母大小写转换
toLowerCase()方法
toUpperCase()方法
注:使用大小写转换时,数字或非字符不受影响
5.4.8 字符串分割
使用split()方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中。
(1)split(String sign)
该方法可根据给定的分割符对字符串进行拆分
语法如下:
str.split(String sign);
注:sign为分割符也可以使用正则表达式,如果想定义多个分割符,可使用符号“|”,例如“,|=”
(2)split(String sign, int limit)
该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。
语法如下:
str.split(String sign, int limit);
5.5 格式化字符串
String类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。
(1)format(String format, Object ... args)
该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。
语法如下:
str.format(String format, Object ... args);
(2)format(Local 1, String format, Object ... args)
5.6 使用正则表达式
为了检查输入的数据是否满足某种格式,从JDK1.4开始可以使用String类的matches()方法进行判断。
语法如下:
str.matches(String regex);
5.7 字符串生成器
StringBuilder类,即字符串生成器,新创建的StringBuilder对象初始容量是16个字符,可以自行指定初始长度,也可以动态地执行添加、删除和插入等字符串的编辑操作,大大提高了频繁增加字符串的效率。如果附加的字符超过可容纳的长度,则StringBuilder对象将自动增加长度以容纳被附加的字符。
StringBuilder类的构造方法有很多,主要是参数上的区别,这里我们主要介绍几种在编程中经常会用到的方法。
StringBuilder append(String str)方法
StringBuilder append(StringBuffer sb)方法
StringBuilder insert(int offset, String str) 方法
StringBuilder delete(int start, String end)方法
String toString() 方法