String类
String类作为不可修改的对象,如果用String修改字符串会新建一个String对象,如果频繁修改,则会产生很多String对象,会产生很大的开销,效率也不是很高
提供了字符串的比较,查找,截取,大小写转换等操作
String类被final所修饰,不能被继承
//构造方法
String()构造空串
String(String)构造为String的串
String(Byte[],offset,length) //用byte子数组构造String
String(char[]) //构造一个内容为char[]的字符串
String(char[],offset,count) //取char[]的子数组
//常用方法
String.length() //求长度
String.substring(begin) //从begin处截取字串
String.substring(begin,end) //从[begin,end)处截取字串
String.startwith(String) //是否以该字串开始
String.endwith(String) //是否以该字串结束
String.toString() //返回该字符串本身
String.equals(String) //比较相等
String.equalsIgnoreCase(String) //比较是否相等,忽略大小写
StringBuffer类和StringBulider类(字符串缓冲区)
StringBuffer类(StringBuilder类同理,下同)作为可以修改的对象,如果是构造一个需要改变的String的话建议先使用StringBuffer,当String类不需要改变的时候再将其转换到String类
StringBuffer底层维护了一个字符数组,存储字符时实际上时往该字符数组中存储,初始化容量为16,当容量不够用时,自动增长一倍
StringBuffer类也具有String类的方法
//构造方法
string=stringBuffer.toString(); //将stringBuffer类转换为String类
stringBuffer() //空stringBuffer串
stringBuffer(String) //一个内容为String的stringBuffer类
//常用方法
stringBuffer.append(String) //增加到字符串末尾
stringBuffer.append(char)
stringBuffer.length() //返回长度
stringBuffer.replace(start, end, str) //从Start到end区间被str替代
stringBuffer.reverse() //反转形式取代
stringBuffer.insert(i,String) //在i后插入String串
stringBuffer.delete(start,end) //删除[start,end)处的字串
stringBuffer.indexOf(String) //返回字串的第一次索引
stringBuffer.indexOf(String,fromIndex) //返回从fromIndex处开始的第一次索引
stringBuffer.charAt(index) //返回这个索引下的序列值
stringBuffer.setCharAt(index, char) //将下标为index的值修改为char
StringBuffer与StringBuilder的区别
StringBuffer类所提供的方法都是同步的方法,属于安全的线程操作
StringBuilder类中的大多方法都是异步方法,属于线程安全的操作
如果多线程环境下涉及到大量修改的操作的话,则首先选择StringBuffer
如果非多线程环境下涉及到大量修改的操作的话,则首先选择StringBuilder
总的来说,执行速度的比较 StringBuilder>StringBuffer>String
蓝桥杯比赛最好用StringBuilder先构造,最后直接StringBuilder.toString()