Java-字符串操作神器StringBuffer和StringBuilder
一、对StringBuffer和StringBuilder的理解
- 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
- 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
- StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
- 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
二、StringBuffer和StringBuilder的使用
public class DataType {
public static void main(String[] args) {
//开辟100 空间给 StringBuilder
StringBuilder stringBuilder = new StringBuilder(100);
stringBuilder.append("www");
stringBuilder.append(".baidu");
stringBuilder.append(".com");
System.out.println(stringBuilder);
}
}
//输出
www.baidu.com
三、StringBuffer和StringBuilder的主要方法
序号 | 方法描述 |
---|---|
1 | public StringBuffer append(String s)将指定的字符串追加到此字符序列。 |
2 | public StringBuffer reverse()将此字符序列用其反转形式取代。 |
3 | public delete(int start, int end)移除此序列的子字符串中的字符。 |
4 | public insert(int offset, int i)将 int 参数的字符串表示形式插入此序列中。 |
5 | replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符。 |
例子
public class DataType {
public static void main(String[] args) {
//开辟100 空间给 StringBuilder
StringBuilder stringBuilder = new StringBuilder(100);
//1. append(), 追加
stringBuilder.append("ABCD");
System.out.println(stringBuilder);
//2. reverse(), 反转
stringBuilder.reverse();
System.out.println(stringBuilder);
//3. replace(), 替换
stringBuilder.replace(1,2,"@");
System.out.println(stringBuilder);
//4. delete(), 删除
stringBuilder.delete(1,2);
System.out.println(stringBuilder);
//5. insert(), 插入
stringBuilder.insert(2,"666");
System.out.println(stringBuilder);
}
}
//输出
ABCD
DCBA
D@BA
DBA
DB666A