栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

StringBuffer类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

StringBuffer类

StringBuffer对象的创建 
  • StringBuffer类和String类都是用于表示字符串的,只是它们的内部实现方式不同。
  • String保存的是字符串常量,里面的值不能被修改,每次String类更新实际上就是更改地址,效率较低  //private final char value[]
  • StringBuffer保存的是字符串变量,里面的值可以更改,每次StringBuffer的更新实际上是更新内容,不是每次都(即不是每次都创建新对象)更新地址,效率较高  //char value[]  //放在堆里,所以效率比String高
  • String类创建的字符串对象是不可以被修改的,也就是说,String字符串不能被修改、删除或替换字符串中的某个字符;而StringBuffer类创建的字符串对象是可以被修改的。
1.StringBuffer对象的初始化

StringBuffer对象的初始化和String对象的初始化相同,通常使用如下构造方法进行初始化:

StringBuffer s = new StringBuffer();//空对象

如果想要创建带参数的,代码如下

StringBuffer s = new StringBuffer("abc");

String对象和StringBuffer对象属于两个不同的类型,不能直接进行强制类型转换。

//创建一个大小为16的char[],用于存放字符内容,构造一个其中不带字符的字符串缓冲区
StringBuffer stringbuffer1 = new StringBuffer();
		
//通过构造器指定大小的char[]
StringBuffer stringbuffer2 = new StringBuffer(100);
		
//通过给一个String创建StringBuffer,char[]大小就是str.length()+16
StringBuffer str = new StringBuffer("Hello, World");

 

2.StringBuffer类的构造方法

 StringBuffer类有三个构造方法,分别是:

  1. StringBuffer()
  2. StringBuffer(int size)
  3. StringBuffer(String s)
  •        在使用第一个无参构造方法创建对象后,分配给该对象的初始容量可以容纳16个字符。当该对象的实体存放的字符序列的长度大于16时,实训题的容量会自动增加,以便存放所有增加的字符。StringBuffer对象可以通过length()方法获取实体中存放的字符序列的长度,并通过capacity()方法获取当前时题的实际容量。
  •        在使用第二个带有int参数的构造方法创建StringBuffer对象后,分配给该对象的初始容量由参数size指定的。当该对象的时题存放的字符序列的长度大于size时,实体的容量会自动增加,以便存放所有增加的字符。
  •        在使用第三个带有String参数的构造方法创建StringBuffer对象后,分配给该对象的初始容量为在参数字符串s的长度基础上增加16个字符。
StringBuffer类的常用方法
  1. append()方法
  2. charAt()方法
  3. insert()方法
  4. reverse()方法
  5. delete()方法
  6. replace()方法
StringBuffer和String相互转换
//String-->StringBuffer
String str = "hello";
//1.使用构造器
//返回的是StringBuffer对象,对str没有影响
StringBuffer stringbuffer = new StringBuffer(str);
//2.使用append()方法
StringBuffer stringbuffer1 = new StringBuffer();
stringbuffer1 = stringbuffer1.append(str);
		
//StringBuffer-->String
StringBuffer stringbuffer3 = new StringBuffer("HELLO,WORLD");
//1.使用StringBuffer同宫的toString方法
String s = stringbuffer3.toString();
//2.使用构造器
String s1 = new String(stringbuffer3);

 

StringBuffer增删改查插长度 
StringBuffer s1 = new StringBuffer("hello");
		
//增
s1.append(",");
s1.append(true);
s1.append("true").append(100).append(4).append("你好");
System.out.println(s1);

//删
//删除的区间为[0,3)
s1.delete(0, 3);
System.out.println(s1);

//改(替换)
//替换区间为[0,3)
s1.replace(0, 3, "你好呀");
System.out.println(s1);
		
//查
int indexof = s1.indexOf("4你好");
System.out.println(indexof);
	
//插
s1.insert(0, "我的世界");
System.out.println(s1);
	
//长度
System.out.println(s1.length());
注意
  • StringBuffer 是一个final类 不能被继承
  • StringBuffer 的直接父类是 AbstractStringBuilder
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605540.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号