一、String类一般字符串
- 声明字符串
>>String str
- 创建字符串
>>String(char a[])方法用于将一个字符数组创建为String对象
>>String(char a[],int offset,int length)方法用于提取字符数组a中的一部分创建一个字符串对象,参数offset表示开始截取字符串的位置,length表示截取字符串的长度
>>String(char a[] value)方法可用于分配一个新的String对象,使其表示字符数组参数中所有对象连接的结果
- 连接字符串
>>使用“+”运算符可以实现连接多个字符串的功能,也可以连接多个运算符并产生一个String对象
>>使用“+”运算符也可同其他基本数据类型进行连接,将其他数据类型转换为字符串
- 获取字符串信息
>>使用String类的length()方法可获取声明的字符串对象的长度
- 字符串查找
>>indexOf(String s)方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当执行该方法时会从字符串开始位置搜索s的位置,如果没有检索到字符串s,该方法的返回值是-1
>>lastIndexOf(String str)方法用于返回指定字符串最后一次出现的索引位置,调用过程与indexOf()相同
- 获取指定索引位置的字符
>>charAt(int index)方法可将指定索引位置的字符返回
- 获取子字符串
>>substring(int beginIndex)方法用于获取从指定索引位置开始截取到该字符串结尾的子串
>>substring(int beginIndex,int endIndex)方法用于获取从指定位置开始截取至某一索引位置结束的子串
- 去除空格
>>trim()方法返回字符串的副本,忽略前导空格和尾部空格
- 字符串替换
>>replace(char oldChar,char newChar)方法可将指定的字符或字符串替换成新的字符或字符串,如果没有目标字符串,则返回原字符串
- 判断字符串的开始与结尾
>>startsWith(String prefix)方法与endsWith(String suffix)方法用于判断字符串是否以指定的内容开始或结束,返回值都为boolean类型
- 判断字符串是否相等
>>“==”用于比较两个字符串的地址是否相同,即使内容长度完全一致,两个字符串的地址也可能不同
>>equals(String otherstr)方法用于比较两个字符串的内容和长度,完全相同时返回true
>>equalsIgnoreCase(String otherstr)方法用于比较两个忽略大小写的字符串的内容和长度,完全相同时返回true
- 按字典顺序比较两个字符串
>>compareTo(String otherstr)方法会按照字典顺序比较两个字符串。从两个字符串的第一位开始比较,如果两个字符串第一位的字符相同,则继续向后比较,直至出现不同的字符为止。若比较到最后一位都相同(即equals(object)方法返回值为true),则结果为0;若不同,该String对象位于参数字符串之前,则比较结果为一个负整数,反之则为一个正整数
- 字母大小转换
>>toLowerCase()方法用于将字符串转换为小写
>>toUpperCase()方法用于将字符串转换为大写
- 字符串分割
>>split(String sign)方法可以使字符串按指定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中
>>split(String sign,int limit)方法作用与上相同,但可以限定拆分次数
二、日期和时间字符串格式化
- 日期格式化
转换符 | 说明 | 示例 |
%te | 一个月中的某一天(1~31) | 2 |
%tb | 指定语言环境的月份简称 | Feb(英文)、二月(中文) |
%tB | 指定语言环境的月份全程 | February(英文)、二月(中文) |
%tA | 指定语言环境的星期几全称 | Monday(英文)、星期一(中文) |
%ta | 指定语言环境的星期几简称 | Mon(英文)、星期一(中文) |
%tc | 包括全部日期和时间信息 | 星期二 三月 25 13:37:22 CST 2008 |
%tY | 4位年份 | 2008 |
%tj | 一年中的第几天(001~366) | 085 |
%tm | 月份 | 03 |
%td | 一个月中的第几天(01~31) | 02 |
%ty | 2位年份 | 08 |
- 时间格式化
转换符 | 说明 | 示例 |
%tH | 2位数字的24时制的小时(00~23) | 14 |
%tI | 2位数字的12时制的小时(01~12) | 05 |
%tk | 2位数字的24时制的小时(0~23) | 5 |
%tl | 2位数字的12时制的小时(1~12) | 10 |
%tM | 2位数字的分钟(00~59) | 05 |
%tS | 2位数字的秒数(00~60) | 12 |
%tL | 3位数字的毫秒数(000~999) | 920 |
%tN | 9位数字的微妙数(000000000~999999999) | 062000000 |
%tp | 指定语言环境的上午或下午标记 | 下午(中文)、pm(英文) |
%tz | 相对于GMT RFC 82 格式的数字时区偏移量 | +0800 |
%tZ | 时区缩写形式的字符串 | CST |
%ts | 1970-01-01 00:00:00 至现在经过的秒数 | 1206426646 |
%tQ | 1970-01-01 00:00:00 至现在经过的毫秒数 | 1206412131231 |
- 格式化常见的日期时间组合
转换符 | 说明 | 示例 |
%tF | “年-月-日”格式(4位年份) | 2008-03-25 |
%tD | “月/日/年”格式(2位年份) | 03/25/08 |
%tc | 全部日期和时间信息 | 星期二 三月 25 15:20:00 CST 2008 |
%tr | “时:分:秒 PM(AM)”格式(12时制) | 03:22:06 下午 |
%tT | “时:分:秒”格式(24时制) | 15:23:50 |
%tR | “时:分”格式(24时制) | 15:25 |
三、常规类型格式化
转换符 | 说明 | 示例 |
%b、%B | 结果被格式化为布尔类型 | true |
%h、%H | 结果被格式化为散步码 | A05A5198 |
%s、%S | 结果被格式化为字符串类型 | "abcd" |
%c、%C | 结果被格式化为字符类型 | 'a' |
%d | 结果被格式化为十进制整数 | 40 |
%o | 结果被格式化为八进制整数 | 11 |
%x、%X | 结果被格式化为十六进制整数 | 4b1 |
%e | 结果被格式化为用计算机科学计数法表示的十进制数 | 1.700000e+01 |
%a | 结果被格式化为带有效位数和指数的十六进制浮点值 | 0X1.C000000000001P4 |
%n | 结果为特于与平台的行分隔符 | |
%% | 结果为字面值% | % |
四、正则表达式
>>正则表达式通常被用于判断语句是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符统称为正则表达式的元字符
元字符 | 正则表达式中的写法 | 意义 |
. | . | 代表任意一个字符 |
\d | \\d | 代表0~9的任何一个数字 |
\D | \\D | 代表任何一个非数字字符 |
\s | \\s | 代表空白字符,如'\t'、'\n' |
\S | \\S | 代表非空白字符 |
\w | \\w | 代表可用作标识符的字符,但不包括“$” |
\W | \\W | 代表不可用作标识符的字符 |
\p{Lower} | \\p{Lower} | 代表小写字母a~z |
\p{Upper} | \\p{Upper} | 代表大写字母A~Z |
\p{ASCII} | \\p{ASCII} | ASCII字符 |
\P{Alpha} | \\P{Alpha} | 字母字符 |
\p{Digit} | \\p{Digit} | 十进制数字,即0~9 |
\p{Alnum} | \\p{Alnum} | 数字或字母字符 |
\p{Punct} | \\p{Punct} | 标点符号:!"#$%&'()*+,-;:<=>?@[\]^_`{|}~ |
\p{Graph} | \\p{Graph} | 可见字符:[\p{Alnum}\p{Punct}] |
\p{Print} | \\p{Print} | 可打印字符:[\p{Graph}\x20] |
\p{Blank} | \\p{Blank} | 空格或制表符:[\t] |
\p{Cntrl} | \\p{Cntrl} | 控制字符:[\x00-\x1F\x7F] |
>>限定修饰符用于限定正则表达式中元字符出现的次数
限定修饰符 | 意义 | 示例 |
? | 0次或1次 | A? |
* | 0次或多次 | A* |
+ | 1次或多次 | A+ |
{n} | 正好出现n次 | A{2} |
{n,} | 至少出现n次 | A{3,} |
{n,m} | 出现n~m次 | A{2,6} |
>>使用matches(String regex)方法来进行正则表达式匹配
五、StringBuilder类
>String类创建的对象,其长度是固定的,内容不能被改变和编译,虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,在内存中创建新的字符串对象。为解决这个问题,系统引入了可变的字符序列StringBuilder类,大大提高了频繁增加字符串的效率
>>append(content)方法用于向字符串生成器中追加内容,可实现接受任何类型的数据
>>insert(int offset arg)方法用于向字符串生成器指定位置插入数据内容
>>delete(int start,int end)方法用于移除指定位置开始到某一位置结束的字符串