概念介绍
实例:
public class RunoobTest{
public static void main(String args[]){
StringBuilder sb = new StringBuilder(10);
sb.append("Runoob..");
System.out.println(sb);
sb.append("!");
System.out.println(sb);
sb.insert(8, "Java");
System.out.println(sb);
sb.delete(5,8);
System.out.println(sb);
}
}
StringBuilder 和 StringBuffer
String创建的对象是不可改变的,而StringBuilder和StringBuffer这两个类创建对象后都是可以对对象进行修改的。
即String为字符串常量,而StringBuilder和StringBuffer均为字符串变量
运行速度:StringBuilder > StringBuffer > String
StringBuilder和StringBuffer的对象是变量,对变量进行操作就是直接对该对象进行更改,而不进行像String对象那样子进行创建和回收的操作,所以速度要比String快很多。
StringBuffer 是线程安全的(能同步访问)。
StringBuilder 不是线程安全的(不能同步访问)。
建议使用 StringBuilder 类,速度更快。
常用方法
public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
public StringBuffer reverse()
将此字符序列用其反转形式取代。
public delete(int start, int end)
移除此序列的子字符串中的字符。
public insert(int offset, String s)
将 String 参数的字符串表示形式插入此序列中。
replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。
char charAt(int index)
返回此序列中指定索引处的 char 值。
int indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引。
int length()
返回长度(字符数)。
void setCharAt(int index, char ch)
将给定索引处的字符设置为 ch。
String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
String toString()
返回此序列中数据的字符串表示形式。