12-01 Java语言基础(StringBuffer(1))
发布日期:2021-05-06 23:59:36 浏览次数:27 分类:精选文章

本文共 2241 字,大约阅读时间需要 7 分钟。

StringBuffer类

  • 通过JDK提供的API,查看StringBuffer类的说明
  • StringBuffer是线程安全的可变字符序列
  • StringBuffer和String的区别:
    -String是一个不可变的字符序列
    -StringBuffer是一个可变的字符序列

StringBuffer类的构造方法

构造方法:

StringBuffer()   构造一个字符串缓冲区,其中没有字符,初始容量为16个字符StringBuffer(int capacity)  构造一个字符串缓冲区,没有字符,具有指定的容量StringBuffer(CharSequence seq)  构造一个字符串缓冲区,其中包含与指定的seq相同的字符StringBuffer(String str)  构造一个初始化为指定字符串的字符串缓冲区

查看字符串长度、容量:

System.out.println(sb.length());System.out.println(sb.capacity());

代码:

public class Demo1_StringBuffer {   	public static void main(String[] args) {   		StringBuffer sb1 = new StringBuffer();		System.out.println(sb1.length());		System.out.println(sb1.capacity());				StringBuffer sb2 = new StringBuffer(10);		System.out.println(sb2.length());		System.out.println(sb2.capacity());				StringBuffer sb3 = new StringBuffer("haha");		System.out.println(sb3.length());		System.out.println(sb3.capacity());	}}

输出:

016010420

分析:

1、如果没有指定StringBuffer的容量,默认为16个字符大小2、如果指定了StringBuffer的容量,那就是那个大小3、如果初始化了StringBuffer的字符串,那么容量为字符串长度+16

StringBuffer的添加功能

相关方法:

public StringBuffer append(String str);  其实不光是字符串,可以将任意类型的数据添加到字符串缓冲区中,并返回字符串缓冲区本身。public StringBuffer insert(int offset, String str);  在指定位置把任意数据类型的数据插入到字符串缓冲区中,并返回字符串缓冲区本身

代码:

public class Demo2_StringBuffer {   	public static void main(String[] args) {   		StringBuffer sb = new StringBuffer();		StringBuffer sb1 = sb.append(true);		StringBuffer sb2 = sb.insert(3, "heima");		StringBuffer sb3 = sb.append(100);				System.out.println(sb1.toString());		System.out.println(sb2.toString());		System.out.println(sb3.toString());	}}

输出:

truheimae100truheimae100truheimae100

分析:

1、由于public StringBuffer append()和public StringBuffer insert()方法都是返回StringBuffer本身,所以sb1~3都指向了同一个对象,所以输出结果都是最终的结果。2、需要注意的一点是,insert()方法中的offset的范围是0~length()

StringBuffer的删除功能

相关方法:

public StringBuffer deleteCharAt(int index);  删除指定位置的字符,并返回本身public StringBuffer delete(int start, int end);  删除从指定位置开始,指定位置结束的内容(左开右闭!),并返回本身

代码:

public class Demo3_StringBuffer {   	public static void main(String[] args) {   		StringBuffer sb = new StringBuffer("heima");		sb.deleteCharAt(4);		System.out.println(sb.toString());				sb.delete(0, 1);   //包含头,不包含尾,所以只删除0号字符		System.out.println(sb.toString());		sb.delete(0, sb.length());  //清空缓冲区	}}

输出:

heimeim
上一篇:12-02Java语言基础(StringBuffer(2))
下一篇:11-06 Java语言基础(String类(5))

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月09日 13时58分54秒