1、StringBuffer类和String类的区别!
StringBuffer与String类型的主要区别就在于:String是不可变对象,我们都知道,String类的对象一旦生成,就不可变,系统就会为该对象分配相应的内存,所以字符串的长度和内容都是不可变的。所以只要我们想要对该字符串稍作修改,系统就要重新产生一个新的对象。这样一旦我们对字符串改的多的话,就会非常占内存。这时我们就应该用StringBuffer来创建字符串对象。StringBuffer类所产生的对象默认有16个字符的长度,内存和长度都可以改变。如果附加的字符超出可容纳的长度,StringBuffer对象也会自动扩容!!所以并不用一直产生新的对象来覆盖原来的对象(这样就不占内存了)。
2、StringBuffer的方法!(描述为本人自己的描述理解,但是我保证正确,请放心使用!!)
方法 | 描述 |
StringBuffer append (参数类型,参数) | 添加参数到StringBuffer对象中 |
StringBuffer deleteCharAt(int index) | 删除序号为index的字符或字符序列 |
StringBuffer delete(int start,int end) | 从start开始删除,直到end结束(不删除end) |
StringBuffer insert(int offset,String str) | 将str插入到 offset(索引)的位置 |
StringBuffer replace(int start,int end,String s) | 用字符串s替换掉从start开始到end结束的字符串 |
StringBuffer reverse() | 翻转StringBuffer 对象中的字符序列 |
String toString() | 返回一个包含在StringBuffer 中的字符序列的字符串 |
下面,我用源码给大家演示一下!!!!(注释很详细)
public class woDeStringBuffer {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
/**
* append来添加
*/
sb.append("我");
sb.append("爱");
sb.append("java");
/**
* toString来输出
*/
System.out.println(sb.toString());
/**
* length来获取长度
*/
int i = sb.length();
System.out.println("StringBuffer的长度为"+i);
/**
* delete来删除
*/
sb.delete(0,2);
System.out.println("delete删除后为:"+sb.toString());
/**
* deleteCharAt来删除指定的坐标的字符
*/
sb.deleteCharAt(1);
System.out.println("deleteCharAt删除后:"+sb.toString());
/**
* insert ,将第二个参数插入到StringBuffer对象第一个索引位置
*/
sb.insert(1,"a");
System.out.println("insert插入后:"+sb.toString());
sb.replace(0,2,"哈哈");
System.out.println("replace替换后:"+sb.toString());
sb.reverse();
System.out.println("reserve翻转后:"+sb.toString());
}
}
运行结果!
你都看完了,如果对你有帮助!那就点个赞吧!
若还有疑问,可以私信问我,我都会一一解答!!