五、String相关
面试题引入:String、StringBuffer、StringBuilder的区别 ?
1.String
String类里面维护了一个不可变字符序列,所以它是线程安全的,但是它不能扩容,每次扩容都要创建一个新数组拷贝
private final char value[];
2.StringBuffer和StringBuilder
可变的字符序列,这个String是有本质的区别的
char[] value;
构造器说明 |
---|
StringBuilder() 构造一个没有字符的字符串构建器,初始容量为16个字符。 |
StringBuilder(CharSequence seq) 构造一个包含与指定的相同字符的字符串构建器 CharSequence 。 |
StringBuilder(int capacity) 构造一个没有字符的字符串构建器,由 capacity 参数指 定的初始容量 |
StringBuilder(String str) 构造一个初始化为指定字符串内容的字符串构建器。 |
首先这两个类有大量的重载方法,一个是append
还有insert
和String一样,它还有一些好用的方法:
返回值 | 方法 | 描述 |
---|---|---|
String | substring(int start) | 截取指定位置开始到最后的字符串 |
String | substring(int start, int end) | 截取字符串 |
StringBuilder | reverse() 。 | 字符序列反转 |
int | lastIndexOf(String str) | 返回指定子字符串最右边出现的字符串内的索引 |
StringBuilder | delete(int start, int end) | 删除此序列的子字符串中的字符。 |
StringBuilder | deleteCharAt(int index) | 删除 char在这个序列中的指定位置。 |
String | toString() | 转为String |