Java核心类——StringBuilder

StringBuilder

概念

    StringBuilder 是一个可变的字符序列.
    可变: 维护的字符数组的地址可以改变

构造方法

数组长度

    capacity: 容量  维护的字符数组的容量
    length: 长度  在字符数组中有效的字符的个数

案例

char[] c = new char[16];

c[0]  = 'a';
c[1] = 'b';

//length == 2;
//capacity == 16;

语法

    public StringBuilder()
	创建一个生成器,初始容量为 16 个字符

    public StringBuilder(int capacity)
	创建一个生成器,初始容量为 capacity 大小

    public StringBuilder(String str)
	构造一个字符串生成器,并初始化为指定的字符串内容。该字符串生成器的初始容量为 16 加上字符串参数的长度。

案例:

package com.study.day14;

public class Demo7 {
    public static void main(String[] args) {
		//构造方法一
        StringBuilder stringBuilder = new StringBuilder();//容量 16
        System.out.println(stringBuilder.capacity());
        System.out.println(stringBuilder.length());
		//构造方法二
        StringBuilder stringBuilder = new StringBuilder(10);
        System.out.println(stringBuilder.capacity());
        System.out.println(stringBuilder.length());
		//构造方法三
        StringBuilder stringBuilder = new StringBuilder("老王");//
        System.out.println(stringBuilder.capacity());//18
        System.out.println(stringBuilder.length());//2

    }
}

成员方法

末尾添加

	public StringBuilder append(Object obj)
	    可以将任意数据类型,转成字符,添加到生成器中

中间插入

	public StringBuilder insert(int index,Object obj)
	  可以将任意数据类型,添加到指定的位置
		(1)index 的范围是 0~ 当前缓冲区的大小;
		(2)插入数据之后,数据本身的索引就是参数中指定的 index

删除

        public StringBuilder deleteCharAt(int index)
		删除指定索引的字符

        public StringBuilder delete(int start,int end)
		删除指定范围的字符,被删除的部分包含头不包含尾

替换

        public StringBuilder replace(int start,int end,String str)
		将字符串缓冲区中的从 start 开始到 end-1 这部分内容,替换成 str

反转

	public StringBuilder reverse()
		将原有字符序列进行反转

将StringBuilder对象转换成字符串

	public String toString()

常见操作

字符串的拼接

	append()

字符串的反转

	resverse()

案例:

package com.study.day14;

public class Demo7 {
    public static void main(String[] args) {

        StringBuilder stringBuilder = new StringBuilder();
        //字符串拼接
        for (char i = 'a'; i <= 'z' ; i++) {
            stringBuilder.append(i);
        }
        System.out.println(stringBuilder);
        
        StringBuilder stringBuilder = new StringBuilder("长风破浪会有时");
        StringBuilder stringBuilder1 = new StringBuilder("直挂云帆济沧海");
        String s = stringBuilder.toString() + stringBuilder1.toString();
        System.out.println(s);

        //插入字符
        stringBuilder.insert(2,"刘能");
        System.out.println(stringBuilder);
        //删除指定索引字符
        stringBuilder.deleteCharAt(2);
        stringBuilder.deleteCharAt(2);
        System.out.println(stringBuilder);
        //删除指定范围的字符,被删除的部分包含头不包含尾
        stringBuilder.delete(2,4);
        System.out.println(stringBuilder);

        //将字符串缓冲区中的从 start 开始到 end-1 这部分内容,替换成 str
        stringBuilder.replace(2,4,"替换成功");
        System.out.println(stringBuilder);

        //将原有字符序列进行反转
        stringBuilder.reverse();
        System.out.println(stringBuilder);


    }
}
posted @ 2021-04-18 22:47  泰初  阅读(445)  评论(0)    收藏  举报