Java从入门到精通——字符串
1 获取字符串信息
已知字符串:
String str = new String();
1.1 获取字符串长度
str.length();
1.2 字符串查找
str.indexOf(substr);//返回substr在str中首次出现的索引位置,若没有,则返回-1
str.lastIndexOf(substr);//返回substr在str中最后一次出现的索引位置,若没有,则返回-1
注意:若lastIndexOf()
方法中的参数是空字符串”“(没有空格),则返回的结果与调用该字符串length()
方法返回的结果相同。
1.3 获取指定索引位置的字符
str.charAt(int index);//返回下标为index处的字符
2 字符串操作
2.1 获取子字符串
str.substring(int beginIndex);
//返回从指定的索引位置开始截取直到该字符串结尾的子串
注意:在字符串中,空格占一个索引位置。
str.substring(int beginIndex,int endIndex);
//返回索引位置从beginIndex到endIndex的子串
2.2 去除空格
str.trim();
//返回str字符串的副本,忽略前导空格和尾部空格。
2.3 字符串替换
str.repalce(char oldChar,char newChar);
//将指定的字符或字符串替换成新的字符或字符串,返回一个新的字符串。
//如果oldChar没有出现在该对象表达式中的字符序列中,则将原字符串返回。
注意:区分大小写。
2.4 判断字符串的开始与结尾
str.startsWith(String prefix);
//判断当前字符串对象的前缀是否为参数指定的字符串。
str.endsWith(String suffix);
//判断当前字符串是否为以给定的子字符串结束。
startsWith()
方法与endsWith()
方法分别用于判断字符串是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。
2.5 判断字符串是否相等
注意:不能简单的用比较云算符“==”来比较字符串对象。因为比较字符串比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false。
str.equals(String otherstr);
//如果两个字符串具有相同的字符和长度,则返回true,区分大小写
str.equalsIgnoreCase(String otherstr);
//忽略大小写比较两个字符串是否相等
2.6 按字典顺序比较两个字符串
str.compareTo(String otherstr);
//按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。
//如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;
//如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;
//如果这两个字符串相等,则结果为0.
2.7 字母大小写转换
str.toLowerCase();
//将字符串中的所有字符从大写字母改写成小写字母
str.toUpperCase();
//将字符串中的所有字符从小写字母改写成大写字母
2.8 字符串分割
str.split(String sign);
//根据给定的分割符sign对字符串进行拆分
str.split(String sign,int limit);
//根据给定的分割符sign对字符串进行拆分,并限定拆分的次数limit
注意:
1、没有统一的对字符进行分割的符号。如果想定义多个分割符,可使用符号“|”。例如,“,l=”表示分割符分别为“,”和“=”。
2、分隔符也可以使用正则表达式。
3 格式化字符串
String 类
的静态format()方法
用于创建格式化的字符串。format()方法
有两种重载形式。
str.format(String format,Object...args);
//该方法使用指定的格式字符串format和参数args返回一个格式化字符串,
//格式化后的新字符串使用本地默认的语言环境。
str.format(Local l,String format,Object...args);
//l:格式化过程中要应用的语言环境。
//如果1为nu11,则不进行本地化。
3.1 日期和时间字符串格式化
- 日期格式化:
Date date = new Date();
String s = String.format("%te",date);
//通过format()方法对date进行格式化
表3-1 常用的日期格式化转换符
时间格式化
表3-2 时间格式化转换符
格式化常见的日期时间组合
表3-3 格式化常见的日期时间组合
3.2 常规类型格式化
表3-4 常规转换符
4 使用正则表达式
正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,” \d”表示数字0~9中的任何一个,”\d”就是元字符。正则表达式中元字符及其意义如表4-1所示。
表4-1 正则表达式中的元字符
在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如,”A*”代表A可在字符串中出现0次或多次。限定修饰符的用法如表4-2所示。
表4-2限定修饰符
判断指定的变量是否是合法的E-mail地址:
String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
str.matches(regex);
5 字符串生成器
StringBuilder
类,若操作可变字符串,则利用StringBuilder
效率较高。
若要使用StringBuilder
最后输出字符串结果,可使用toString()
方法。
该类的常用方法如下:
append(content);
//向字符串生成器中追加内容,content可以是任何类型的数据或者具他对象
insert(int offset arg);
//向字符串生成器中的指定位置插入数据内容;
//offset:字符串生成器的位置。该参数必须大于等于0,且小于等于此序列的长度。
//arg:将插入至字符串生成器的位置。该参数可以是任何数据类型或其他对象。
delete(int start,int end);
//移除