Java——StringBuffer/StringBuilder以及和string区别

Posted tractors

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java——StringBuffer/StringBuilder以及和string区别相关的知识,希望对你有一定的参考价值。

一、string/string/stringbuffer区别:

  1)string创建后不能改变,每次改变都是重新创建对象;

    string/stringbuffer是string的缓冲区容器,可以修改;

  2)速度:stringBuilder快于stringbuffer快于string

 

二、StringBuilderStringBuffer的简单版本;1.5jdk之后才有;为了提高效率;

(1)StringBuffer:是线程同步;安全;效率低;建议多线程用;

(2)StringBuilder:是线程不同步;不安全;效率高;建议单线程用;

(3)功能都一样;

三、StringBuffer:

1.StringBuffer是字符串缓冲区;一个容器;

2.toString()StringBuffer转换为字符串;

3.操作:

  (1)存储:

    StringBuffer append()//添加;将指定数据作为参数添加到已有数据的结尾处;

    StringBuffer insert(index,数据)//插入;把数据插入到index位置;

  (2)删除:

    StringBuffer delete(stratend)//删除;从start位,到end;包含头,不包含尾;

    StringBuffer deleteCharAt(index)//删除指定位置的字符;

    清空:

      1sb=new StringBuffer()

      2sb.delete(0sb.length())

  (3)获取:

    char charAt(int index)//获取index位置的char

    int indexOf(String str)//获取第一个str的位置;没有返回-1

    String subString(int atratint end)

     String toString()

  (4)修改:

    StringBuffer replace(int startint endString str)//替换;

    void setCharAt(int indexchar ch)//替换,替换字符后,不返回;

   5)反转:StringBuffer reverse()

  (6)取出:void getChars(int srcBeginint srcEndchar[] dstint detBegin)

    //将缓冲区中的指定数据,存储到指定数组中;

    //(缓冲区中开始位,结尾位,目标数组,数组开始位)

        StringBuffer sb=new StringBuffer("0123456789");
        char[] arr=new char[4];
        sb.getChars(1,4,arr,1);
        System.out.println(arr[0]);  //
        System.out.println(arr[1]);  //1
        System.out.println(arr[2]);  //2
        System.out.println(arr[3]);  //3

 

以上是关于Java——StringBuffer/StringBuilder以及和string区别的主要内容,如果未能解决你的问题,请参考以下文章

全面解释java中StringBuilderStringBufferString类之间的关系

StringBuilder StringBuffer String辨析

String 类详解

StringBuffer

StringBuffer

StringBuffer