StringBuffer、StringBuilder和String一样,也用来代表字符串。
String类
是不可变类,任何对String的改变都 会引发新的String对象的生成;StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象。
StringBuffer
支持并发操作,线性安全的,适 合多线程中使用。
StringBuilder
不支持并发操作,是线性不安全的,但其在单线程中的性能比StringBuffer高。
Strings中的方法
截子串方法:
//取得是begin...end-1之间的
public String substring(int beginIndex, int endIndex)
是否包含某子串
public boolean contains(CharSequence s)
寻找一个字符或字符串的起始位置,同时也可以判断一个字符串中是否包含某个字符(串)
public int indexOf(String str)
获取字符串中指定下标位置的字符
public char charAt(int index)
字符串转数组
public char[] toCharArray()
数组转字符串
String newStr = new String(array, 0, size);//0是起始位置,size是元素个数
字符串替换
//全部替换
public String replace(char oldChar, char newChar) //替换字符
public String replace(CharSequence target, CharSequence replacement) //替换字符串
public String replaceAll(String regex, String replacement)//支持正则表达式,会对参数进行解析
//只替换第一个
public String replaceFirst(String regex, String replacement)
StringBuilder和String相互转换的方法
//String转换为StringBuilder
String str = "Hello ";
StringBuilder builder = StringBuilder(str);
//向StringBuilder中添加字符串
builder.append("World!");
//StringBuilder转换为String
String str2 = builder.toString();