
本文共 2717 字,大约阅读时间需要 9 分钟。
- StringBuffer对象的创建
- StringBuffer类的常用方法
附加:可以用String类的构造方法String(StringBuffer bufferstring)创建一个字符串对象
一:StringBuffer对象的创建
String类创建的字符串对象是不可以修改的,也就是说,String字符串不能修改,删除或替换字符串中的某个字符,即String对象一旦创建,实体是不可以再发生变化的。
例如:String s=new String(“我喜欢学习”);s Ox12ABC----------我喜欢学习(实体)注意:若变化,会另开空间,原来空间不变
StringBuffer类可以创建可修改的字符串序列。也就是说,该类对象的实体的内存空间可以自动改变大小,以便于存放一个可变的字符系列。
比如一个StringBuffer对象调用append方法可以追加字符序列
例如:StringBuffer buffer=new StringBuffer(“我喜欢学习”);那么对象s可调用append方法追加一个字符串序列,如下:buffer.append(“数学”);buffer Ox12ABC----------------------我喜欢学习数学(实体发生了变化) 注意:是在原来实体中发生变化
StringBuffer类有StringBuffer(),StringBuffer(int size),StringBuffer(String s)三个构造方法
- 使用第一个无参数的构造方法创建对象,分配给该对象的实体的初始容量可以容纳16个字符,当该对象的实体存放的字符序列的长度大于16时,实体的容量自动地增加
StringBuffer对象可以通过length()方法获取实体中存放字符串序列的长度,通过capacity()方法获取当前实体的实际容量
- 第二个初始容量为参数size,也是会自动增加
- 初始容量为参数字符串s的长度额外再加16个字符,也是会自动增加
比如一个无参数的构造方法例子:
public class p1 { public static void main(String args[]) { StringBuffer str=new StringBuffer(); str.append("大家好"); System.out.println(str.length()); //输出3 System.out.println(str.capacity()); //输出16 str.append("我们大家都很愿意学习java语言"); //追加16,即19个字符 System.out.println(str.length()); //输出19 System.out.println(str.capacity()); //输出34 34-16=18 }}注意:我根据多次实验发现好像有个规律初始容量:16当字符串序列是17时候,实际容量16+18=34当字符串序列是35时候,实际容量16+18+18*2=70当字符串序列是71时候,实际容量16+18+18*2+18*4=142当字符串序列是143时候,实际容量16+18+18*2+18*4+18*8=286。。。
二:StringBuffer类的常用方法
- append方法
使用StringBuffer类的append方法可以将其他java类型数据转化为字符串后,再追加到StringBuffer对象中。
(1)StringBuffer append(String s)
将一个字符串对象追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
(2)StringBuffer append(int n)
将一个int型数据转化为字符串对象后再追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
(3)StringBuffer append(Object o)
将一个Object对象的字符串表示追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用
类似还有很多StringBuffer append(类型 n)
- public char charAt()和public void setCharAt(int n,char ch)
(1)char charAt(int n)得到参数n指定的位置上的单个字符。当前对象实体中的字符串序列的第一个位置为0,第二个为1,以此类推。
n的值必须是非负的,并且小于当前对象实体中字符串序列的长度
(2)setCharAt(int n,char ch)将当前StringBuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。n的值必须是非负的,并且小于实体中字符串序列的长度
- StringBuffer insert(int index,String str)
StringBuffer对象使用insert方法将参数str指定的字符串插入到参数index指定的位置,并返回当前对象的引用
- public StringBuffer reverse()
StringBuffer对象使用reverse()方法将该对象实体中的字符翻转,并返回当前对象的引用
- StringBuffer delete(int startIndex,int endIndex)
(1)delete(int startIndex,int endIndex)从当前StringBuffer对象实体的字符串中删除一个子字符串,并返回当前对象的引用
快速记忆(要删除的第一个字符下标,endIndex-1)
(2)deleteCharAt(int index)方法删除当前StringBuffer对象实体的字符串中index位置处的一个字符
- StringBuffer replace(int startIndex,int endIndex,String str)
将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换,并返回当前StringBuffer对象的引用
快速记忆(替换的第一个字符下标,endIndex-1, 要被换成的字符串)
发表评论
最新留言
关于作者
