StringBuilder类和StringBuffer

基本概念:
由于String类型描述的字符串是个常量不可更改,当程序中出现大量类似字符串时需要单独存储,此时会造成内存空间的浪费;
为了解决上述问题,可以使用StringBuilder类或StringBuffer类来描述可以改变的字符串;
StringBuffer类从jdk1.0开始存在,属于线程安全的类,因此效率比较低;
StringBuilder类从jdk1.5开始存在,属于非线程安全的类,因此效率比较高;
常用的方法:
StringBuilder(String str)
- 根据参数指定字符串构造对象。
- 初始容量为: 字符串长度 + 16
int capacity()
- 用于返回调用对象的容量
int length()
- 用于返回长度/字符的个数
StringBuilder insert(int offset, String str)
- 用于将参数str指定的内容插入到当前字符串中下标为offset的位置。
- 返回当前调用对象的引用。
StringBuilder append(String str)
- 用于将参数str指定内容追加到当前字符串的末尾。
StringBuilder delete(int start, int end)
- 用于将当前字符串中从start(含)开始到end(不包含)之间的所有内容删除。
StringBuilder deleteCharAt(int index)
- 用于将当前字符串中下标为index位置的单个字符删除。
StringBuilder replace(int start, int end, String str)
- 用于将当前字符串中从start到end之间的所有内容用str替换。
int indexOf(String str)
- 用于从当前字符串中查找参数str第一次出现的索引位置。
StringBuilder reverse()
- 用于反转当前字符串内容。
总结:

———— / 能量补充_Fighting / ————
正则表达式
基本概念:
正则表达式本质上就是一个字符串,用于进行用户输入数据格式的验证。
该字符串通常由^运算符开头$运算符结束,当然也可以省略。
常用的格式:
[abc] - 表示可以出现a、b 或 c.
[^abc] - 表示可以出现任何字符,除了 a、b 或 c.
[a-zA-Z] - 表示可以出现a 到 z 或 A 到 Z,两头的字母包括在内.
\d - 表示可以出现任何数字,相当于[0-9].
\D - 表示可以出现任何非数字,相当于[^0-9].
\s - 表示可以出现任何空白字符:[ \x0B].
\S - 表示可以出现任何非空白字符:[^\s].
\w - 表示可以出现任何单词字符:[a-zA-Z_0-9]
\W - 表示可以出现任何非单词字符:[^\w]
X? - 表示X可以出现一次或一次也没有,也就是0 ~ 1次。
X* - 表示X可以出现零次或多次,也就是0 ~ n次。
X+ - 表示X可以出现一次或多次,也就是1 ~ n次。
X{n} - 表示X可以出现恰好 n 次。
X{n,} - 表示X可以出现至少 n 次,也就是>=n次。
X{n,m} - 表示X可以出现至少 n 次,但是不超过 m 次,也就是>=n并且<=m次。
相关的方法:
boolean matches(String regex)
- 用于判断当前字符串内容是否满足参数指定的正则表达式规则。
- 该方法中调用对象和参数对象的位置不能互换。