字符串
单个字符可以用char类型进行保存,多个字符组成的文本需保存在String对象中。String通常被称为字符串,一个String对象最多可以保存(2^32-1)个字节(占用4GB空间大小)的文本内容。
声明字符串
字符串必须被包含在一对双引号(" ")之内,通过以下语法格式来声明字符串变量:
String s
创建字符串的三种方式
String(char a[])
String(char a[], int offset, int length)该方法提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度。
String(char[] value)该构造方法可分配一个新的String对象,使其表示字符数组参数中所有元素连接的结果。
连接字符串
使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个String对象并产生一个新的String对象。
如果将字符串同其他数据类型数据进行连接,则会将其他数据类型的数据直接转换成字符串。只要“+”运算符的一个操作数是字符串,编译器就会将另一个操作数转换成字符串形式。
查找字符串
indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。
获取指定索引位置的字符使用charAt()方法可将指定索引处的字符进行返回。语法如下:
str.charAt(int index)
字符串操作
获取子字符串
substring(int beginIndex)该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。
注意:在字符串中,空格占用一个索引位置。
substring(int beginIndex, int endIndex)该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。
去除空格
trim()方法返回字符串的副本,忽略前导空格和尾部空格。语法如下:
Str.trim()
替换字符串
replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。语法如下:
str.replace()
replace()方法返回的结果是一个新的字符串。如果字符或字符串oldChar没有出现在该对象表达式的字符串序列中,则将原字符串进行返回。如果要替换的字符oldChar在字符串中重复出现多次,那么replace()方法会将所有oldChar字符全部替换成newChar。
判断字符串的开始与结尾
startsWith()方法与endsWith()方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。
str.startsWith() str.endsWith()
判断字符串是否相等
对字符串对象进行比较不能简单地使用“==”,因为比较运算符比较的是两个字符串的地址是否相同。
如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true;否则,返回false。
使用equals()方法对字符串进行比较时是区分大小写的,而使用equalsIgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等的,返回结果仍为boolean类型。
按字典顺序比较两个字符串
compareTo()方法是按字典顺序比较两个字符串的,该比较基于字符串中各个字符的Unicode值,按字典顺序将String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。
compareTo()方法只有在equals(Object)方法返回true时才返回0。
字母大小写的转换
tring类的toLowerCase()方法可将字符串中的所有大写字母改写为小写字母,而toUpperCase()方法可将字符串中的所有小写字母改写为大写字母。使用这两种方法进行大小写转换时,数字或其他非英文字母类字符不受影响。
分割字符串
使用split()方法可以使字符串按指定的分割字符或字符串进行分割,并将分割后的结果存储在字符串数组中。
split(String sign)该方法可根据给定的分割符对字符串进行拆分。
sign为分割字符串的分割符,也可以使用正则表达式。没有统一的对字符进行分割的符号。如果想定义多个分割符,可使用符号“|”。例如,“,|=”表示分割符分别为“,”和“=”。
split(String sign,int limit)该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。注意分割两次,即将一整个str切一刀。
格式化字符串
String类的静态format()方法用于创建格式化的字符串。
format(String format,Object...args)该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。
format(Local l,String format,Object...args)该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用其指定的语言环境。
常用的日期格式化转换符
时间格式化转换符
常用的日期和时间组合的格式
常规转换符
使用正则表达式
正则表达式通常用于判断语句中,用来检查某一字符串是否满足某一格式。
正则表达式中的元字符
在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。例如,reg = "[abc]4",这样字符串a4、b4、c4都是和正则表达式匹配的字符串。方括号元字符还可以为其他格式,具体如下。
[^456]:代表4、5、6之外的任何字符。
[a-r]:代表a~r的任何一个字母。
[a-zA-Z]:可表示任意一个英文字母。
[a-e[g-z]]:代表a~e或g~z的任何一个字母(并运算)。
[a-o&&[def]]:代表字母d、e、f(交运算)。
[a-d&&[^bc]]:代表字母a、d(差运算)。
限定修饰符来限定元字符出现的次数。
字符集“\\w”匹配任意字符
字符串生成器
ppend()方法该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接收任何类型的数据,如int、boolean、char、String、double或者另一个字符串生成器等。
insert(int offset, arg)方法该方法用于向字符串生成器中的指定位置处插入数据内容。
delete(int start , int end)方法移除此序列的子字符串中的字符。该子字符串从序列的索引(start)开始,到索引(end -1)结束。如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。