(JAVA)StringBuffer类

可变数组:StringBuffer类(静态缓冲区)
提高字符串的操作效率
StringBuffer 底层实现原理是字符数组,没有final
StringBuffer,含有数组char[] value 默认长度是16
在JAVA中,数组是固定长度,一旦创建不能改变
StringBuffer 通过数组的赋值,实现数组的可变性,但数组本身不能改变长度
1.将任意数据类型,添加到缓冲区中append()
2.返回一个StringBuffer,因此可以使用方法调用链
3.将任意数据,插入到缓冲区的某一个索引上index(索引,插入内容)
4.缓冲区的删除方法:delete(int start, int end);deleteCharAt( int index);
5.修改缓冲区的单个字符setCharAt( int index ,char ch);
6.缓冲区字符串翻转,reverse()
7,缓冲区字符串截取,substring()返回的是String结构
8.将缓冲区变成不可变对象toString()
9.字符串对象与缓冲区对象互转
字符串变成缓冲区
String s = new String("asdf");
StringBuffer b = new StringBuffer();
b.append(s);

缓冲区变成字符串
StringBuffer buffer = new StringBuffer("vbnm");
String string = buffer.toString();
注意返回值是String 要接收变量
/*
public final class StringBuffer
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence


      A cache of the last value returned by toString. Cleared
      whenever the StringBuffer is modified.

private transient char[] toStringCache;

 use serialVersionUID from JDK 1.0.2 for interoperability
static final long serialVersionUID = 3388685877147921107L;

/**
 * Constructs a string buffer with no characters in it and an
 * initial capacity of 16 characters.

public StringBuffer() {
        super(16);
        }

/**
 * Constructs a string buffer with no characters in it and
 * the specified initial capacity.
 *
 * @param      capacity  the initial capacity.
 * @exception  NegativeArraySizeException  if the {@code capacity}
 *               argument is less than {@code 0}.

public StringBuffer(int capacity) {
        super(capacity);
        }

/**
 * Constructs a string buffer initialized to the contents of the
 * specified string. The initial capacity of the string buffer is
 * {@code 16} plus the length of the string argument.
 *
 * @param   str   the initial contents of the buffer.

public StringBuffer(String str) {
        super(str.length() + 16);
        append(str);
        }

/**
 * Constructs a string buffer that contains the same characters
 * as the specified {@code CharSequence}. The initial capacity of
 * the string buffer is {@code 16} plus the length of the
 * {@code CharSequence} argument.
 * <p>
 * If the length of the specified {@code CharSequence} is
 * less than or equal to zero, then an empty buffer of capacity
 * {@code 16} is returned.
 *
 * @param      seq   the sequence to copy.
 * @since 1.5

public StringBuffer(CharSequence seq) {
        this(seq.length() + 16);
        append(seq);
        }







 */

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        //System.out.println(getStringCont());
        //System.out.println(getString_1());
        //System.out.println(getString_2());
        //getString_3();
        //System.out.println(getString_4());
        System.out.println(getString_5());

    }
    
    
    //定义一个共能,从一个字符串中查找另一个字符串出现的次数
    public static int getStringCont() {
        Scanner sc1 = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s1 = sc1.nextLine();

        Scanner sc2 = new Scanner(System.in);
        System.out.println("请输入要查找的内容:");
        String s2 = sc2.nextLine();

        //定义计数器
        int count = 0;
        //定义下角标
        int index = 0;
        if (s1.length() == 0 || s2.length() == 0)
            return count;
        else {
            //判断s1第一次出现的位置,只要第一次出现的位置大于零,就进入循环
            while((index = s1.indexOf(s2))>0){
                count++;
                //新的字符串长度为查找内容后的下角标到结尾
                s1 = s1.substring(index+s2.length());
            }
        }
        return count;


    }

    public static StringBuffer getString_1(){
        StringBuffer buffer = new StringBuffer("abc");
        buffer.append("sdf");
        buffer.insert(2,"bnm");
        return buffer;
    }
    public static StringBuffer getString_2(){
        StringBuffer buffer_1 = new StringBuffer();
        buffer_1.append("poiu");
        System.out.println(buffer_1+"1");
        //删除指定下角标
        buffer_1.deleteCharAt(1);
        System.out.println(buffer_1+"2");

        //删除一堆
        buffer_1.delete(0,2);
        return buffer_1;


    }
    public static void getString_3(){
        StringBuffer buffer_2 = new StringBuffer();
        buffer_2.append("abcdefg");
        buffer_2.setCharAt(3,'p');
        System.out.println(buffer_2);
    }
    public static StringBuffer getString_4(){
        String s = "asdf";
        StringBuffer b = new StringBuffer();
        b.append(s);
        return b;

    }

    public static String getString_5(){
        StringBuffer buffer = new StringBuffer("vbnm");
        String string = buffer.toString();
        return string;
    }



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值