【自学笔记】 Java基础 - API之StringBuilder

代码 代码 2181 人阅读 | 0 人回复

<
StringBuilder概述
  • Java.lang.StringBuilder
  • StringBuilder是一个可变的字符串类,能够看作是字符串缓冲区,能够进步字符串的操纵服从(算作一个少度能够变更的字符串),底层也是一个数组,可是出有被final润饰,能够改动少度
  • StringBuilder正在内乱存中一直是一个数组,占用空间少,服从下,假如超越了StringBuilder的容量,会主动扩容。
取String的机能比照


public class testStringBuilder {    public static void main(String[] args) {        testString();        testStringBuilder();    }    public static void testString(){        String s = "";        long start = System.currentTimeMillis(); // 获得1970年1月1日0时0分0秒 到当前工夫阅历过的的毫秒值        for (int i=1;i<=50000;i++){            s +=i;        }        long end = System.currentTimeMillis();        System.out.println("String=>" + " " + (end-start));    }    public static void testStringBuilder(){        StringBuilder stringBuilder = new StringBuilder();        long start = System.currentTimeMillis(); // 获得1970年1月1日0时0分0秒 到当前工夫阅历过的的毫秒值        for (int i=1;i<=50000;i++){            stringBuilder.append(i);        }        long end = System.currentTimeMillis();        System.out.println("StringBuilder=>" + " " + (end-start));    }}挨印成果:String=> 3780StringBuilder=> 2
注:+号运算符 对字符串拼接时分会发生渣滓字符串 招致内乱存变年夜,再Java底层中会new StringBuilder挪用append()完成字符串拼接,再挪用toString()办法返回字符串,一个减号,堆内乱存中俩个工具。
机关办法
  • StringBuilder():机关一个没有带任何字符的字符串天生器,其初初容量为16个字符。
  • StringBuilder(String str):机关一个字符串天生器,并初初化为指定的字符串内乱容



public class CreateStringBuilder {    public static void main(String[] args) {        // StringBuilder():机关一个没有带任何字符的字符串天生器,其初初容量为16个字符。        StringBuilder stringBuilder = new StringBuilder();        System.out.println(stringBuilder);        // StringBuilder(String str):机关一个字符串天生器,并初初化为指定的字符串内乱容        StringBuilder stringBuilder1 = new StringBuilder("abc");        System.out.println(stringBuilder1);    }}




经常使用办法
  • public StringBuilder append(...):增加随便范例数据的字符串情势,并返回当前工具本身;
    注:
    append办法返回的是this。
    append的办法无序返回值。
  • public String toString():将当前StringBuilder工具转换为String工具
    注:
    String战StringBuilder能够相互转换:
    String->StringBuilder:可使用StringBuilder的机关办法
    StringBuilder->String:可使用StringBuilder中的toString办法
  • public StringBuilder reverse() 返回相反的字符序列
  • public int length() 返回少度(字符呈现的个数)





public class StringBuilderMethod {    public static void main(String[] args) {        StringBuilder stringBuilder = new StringBuilder();        // public StringBuilder append(...):增加随便范例数据的字符串情势,并返回当前工具本身;        stringBuilder.append(123);        stringBuilder.append("abc");        stringBuilder.append(true);        StringBuilder stringBuilder1 = stringBuilder.append('s');        StringBuilder stringBuilder2 = stringBuilder.append(12314.123);        System.out.println(stringBuilder);        System.out.println(stringBuilder1 == stringBuilder2); // 返回当前工具本身        // 链式编程:假如一个办法返回得是一个工具,工具就能够持续背下挪用办法        stringBuilder2.append("连").append("式").append("编").append("程");        System.out.println(stringBuilder);        // result=> 123abctrues12314.123        // result=> true        // 123abctrues12314.123连式编程        // public StringBuilder reverse() 返回相反的字符序列        stringBuilder.reverse();        System.out.println(stringBuilder);        // 程编式连321.41321seurtcba321        //public int length() 返回少度(字符呈现的个数)        System.out.println(stringBuilder.length());        // public String toString():将当前StringBuilder工具转换为String工具        System.out.println(stringBuilder.toString());    }}


StringBuilder战String得区分
  • String:内乱容是不成改动的
  • StringBuilder:内乱容是可变的





1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则