9.6 StringBuffer类
发布日期:2021-05-07 06:40:06 浏览次数:24 分类:精选文章

本文共 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, 要被换成的字符串)

上一篇:9.7 StringTokenizer类
下一篇:9.5 正则表达式及字符串的替换与分解

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月13日 15时24分30秒