## 字符串相关的类
## java.lang包
String
Serializable,CharSequence,Comparable
非常特殊的类 可以像常量一样创建对象
String str = "abc";
内存存储 "abc"对象 char[] value
String不可变特性 private final char[] value;
频繁的修改其内容的时候 性能很不好
StringBuffer
## StringBuilder
1.所属的包 java.lang包
2.继承AbstractStringBuilder 间接继承 Object
实现接口Serializable,CharSequence,Appendable
StringBuffer/StringBuilder没有compareTo方法
StringBuffer/StringBuilder含有一个String没有的方法 append();拼接
3.特性
可变字符串 char[] value; 动态扩容
4.对象的构建
//无参数构造方法 构建一个默认长度16个空间的对象 char[]
StringBuilder builder = new StringBuilder();
//利用给定的参数 构建一个自定义长度空间的对象 char[]
StringBuilder builder = new StringBuilder(20);
//利用带String参数的构造方法 默认数组长度字符串长度+16个
StringBuilder builder = new StringBuilder("abc");
5.StringBuilder中常用的方法
最主要的方法 append() 频繁的拼接字符串的时候使用此方法 提高性能
ensureCapacity(int minimumCapacity) 确保底层数组容量够用
capacity();//字符串底层char[]的容量
length();//字符串有效元素个数(长度)
setLength();//设置字符串的有效元素个数
char = charAt(int index);
int = codePointAt(int index);
String = substring(int start [,int end]);
注意需要接受返回值 看见截取出来的新字符串效果
StringBuilder = delete(int start [,int end]);
StringBuilder类中独有的方法String类没有
将start到end之间的字符串删掉 不用接受返回值就看到效果啦
StringBuilder = deleteCharAt(int index);
String类中没有的方法
将给定index位置的某一个字符删除掉啦
int = indexOf(String str [,int fromIndex]);
int = lastIndexOf(String str [,int fromIndex])
找寻给定的str在字符串中第一次出现的索引位置 带重载 则从某一个位置开始找
insert(int index,value);
将给定的value插入在index位置之上
replace(int start,int end,String str);
将start和end之间的部分替换成str
builder.replace(2,5,"zzt");
setCharAt(int index,char value);
将index位置的字符改成给定的value
toString()
将StringBuilder对象 构建成一个string对象 返回
trimToSize()
将数组中无用的容量去掉 变成length长度的数组