java stringbuffer数组_JavaSE知识-13(StringBuffer&数组排序)

StringBuffer类的概述

通过JDK提供的API, 查看StringBuffer类的说明

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

StringBuffer类的构造方法

每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,不安全,所以速度更快。

A:StringBuffer的构造方法:

public StringBuffer():无参构造方法

public StringBuffer(int capacity):指定容量的字符串缓冲区对象

public StringBuffer(String str):指定字符串内容的字符串缓冲区对象

B:StringBuffer的方法:

public int capacity():返回当前容量。理论值(不掌握)

public int length():返回长度(字符数)。 实际值

C:案例演示

构造方法和长度方法的使用

package com.hwh.stringbuffer;

public class Demo1_StringBuffer {

public static void main(String[] args) {

StringBuffer sb = new StringBuffer();

System.out.println(sb.length());//0//容器中的字符个数,实际值

System.out.println(sb.capacity());//16//容器的初始容量,理论值

StringBuffer sb2 = new StringBuffer(10);

System.out.println(sb2.length());//0

System.out.println(sb2.capacity());//10

StringBuffer sb3 = new StringBuffer("hwh");

System.out.println(sb3.length());//3//实际字符的个数

System.out.println(sb3.capacity());//19//字符串的length + 初始容量

}

}

StringBuffer的添加功能

StringBuffer的添加功能

public StringBuffer append(String str):

可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身

public StringBuffer insert(int offset,String str):

在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

StringBuffer是字符串缓冲区,当new的时候是在堆内存创建了一个对象,底层是一个长度为16的字符数组

当调用添加的方法时,不会再重新创建对象,在不断向原缓冲区添加字符

package com.hwh.stringbuffer;

public class Demo2_StringBuffer {

public static void main(String[] args) {

demo1();

StringBuffer sb = new StringBuffer("1234");

sb.insert(3, "hwh");//在指定位置添加元素,如果没有指定位置的索引就会报索引越界异常

System.out.println(sb); //123hwh4

}

private static void demo1() {

StringBuffer sb = new StringBuffer();

System.out.println(sb.toString());//

StringBuffer sb2 = sb.append(true);

System.out.println(sb2.toString());//true

StringBuffer sb3 = sb.append("hwh");

System.out.println(sb3.toString());//truehwh

StringBuffer sb4 = sb.append(100);

System.out.println(sb4.toString());//truehwh100

System.out.println(sb.toString()); //truehwh100//StringBuffer类中重写了toString方法,显示的是对象中的属性值

System.out.println(sb2.toString()); //truehwh100

System.out.println(sb3.toString()); //truehwh100

System.out.println(sb4.toString()); //truehwh100

}

}

StringBuffer的删除功能

A:StringBuffer的删除功能

public StringBuffer deleteCharAt(int index):

删除指定位置的字符,并返回本身

public StringBuffer delete(int start,int end):

删除从指定位置开始指定位置结束的内容,并返回本身

package com.hwh.stringbuffer;

public class Demo3_StringBuffer {

public static void main(String[] args) {

StringBuffer sb = new StringBuffer();

//sb.deleteCharAt(5);//当缓冲区中这个索引上没有元素的时候就会报StringIndexOutOfBoundsException

sb.append("hanwenhao");

sb.deleteCharAt(4);//根据索引删除掉索引位置上对应的字符

System.out.println(sb); //hanwnhao

sb.delete(0, 2);//删除的时候是包含头,不包含尾

System.out.println(sb); //nwnhao

sb.delete(0, sb.length());//清空缓冲区

System.out.println(sb);

sb = new StringBuffer();//不要用这种方式清空缓冲区,原来的会变成垃圾,浪费内存

System.out.println(sb);

}

}

StringBuffer的替换和反转功能

A:StringBuffer的替换功能

public StringBuffer replace(int

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值