Java 中 String、StringBuffer、StringBuilder 类

一、String类

  1、须知

  本质:字符串的本质是一个字符的数组。

    String s3 = "abc" 和 String s4 = new String("abc")的区别;

    String s3 = "abc":

        以字符数组的形式存在堆中的常量池中,在常量池分配地址。

    String s4 = new String("abc"):

        首先在常量池出现,分配地址,然后再堆中开辟空间,并为此空间赋值,分配地址,此空间存的是在常量池中的地址。

    2、构造函数

    String str = new String (byte[] bytes):改参数为字节数组,对应 ASCII码表 。

      String str = new String (byte[] bytes,int offset,int length):第一个参数:字节数组,第二个参数:传入字节数组的开始索引,第三个参数:传入字节数组索引位置,截取多少位。

      String str = new String (char[] chars)::改参数为字符数组。

      String str = new String (char[] char,int offset,int length):第一个参数:字符数组,第二个参数:传入字符数组的开始索引,第三个参数:传入字符数组索引位置,截取多少位。

    3、常用方法

      length():获取字符串的长度。返回int

      substring(int startIndex,[ intEndIndex ]):截取字符串,第一个参数:开始截取字符串的索引,第二个参数:不写,截取到最后,写截取到的索引位置,  (包头不包尾)  。返回 String

     startsWith(String str):判断该字符串是不是以指定子字符串开始     返回Boolean

     endsWith(String str):判断该字符串是不是以指定子字符串开始     返回Boolean

     contains(String str):判断大字符串是不是包含小字符串       返回Boolean

     indexOf(String str):判断该小字符串在大字符串第一次出现的索引位置   返回int 

     getBytes():使用: byte[] bytes = str.getBytes() ; 将指定字符串转字节数组

     toCharArray():使用:char[] chars = str.toCharArray();将指定字符串转字符数组

     equals(Object obj) :判断两个字符串是不是内容一样   返回Boolean;

     equalsIgnoreCase(Object obj):判断两个字符串是不是内容一样 ,但是不区分大小写  返回Boolean;

  二、StringBuffer 类

   可变字符串:

    1、StringBuffer 和 String 的转换;  

      String 转 StringBuffer :StringBuffer sb = new StringBuffer(String str);

      StringBuffer 转 String :String str = sb.toString();

     2、常用方法

    append(Object obj):在后边追加指定字符串。

      delete(int startIndex,int endIndex):删除指定索引位置的字符串。  

      insert(int Index,String str):在指定索引位置插入指定字符串

      replace(int startIndex,int endIndex,String str):将指定索引区域的字符串替换指定字符串

     reverse():将字符串反转

    以上方法返回的都是 StringBuffer 类型的对象 所以可以链式编程

    

  StringBuilder类:拥有和 StringBuffer  类一样的方法,但是效率由于 StringBuffer 

原文地址:https://www.cnblogs.com/yanghaoyu0624/p/11577131.html