JAVA中StringBuilder学习

JAVA中StringBuilder学习StringBuilder概述StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。作用:提高字符串的操作效率。通过代码可以说明publicclassDemo1StringBuilder{publicstaticvoidmain(String[]args){longstart=System.currentTimeMillis();StringBuildersb=newStringBuilder();

大家好,又见面了,我是你们的朋友全栈君。

StringBuilder概述

StringBuilder是一个可变的字符串类,我们可以把它看成是一个容器。
作用:提高字符串的操作效率。
通过代码可以说明

public class Demo1StringBuilder { 
   
    public static void main(String[] args) { 
   
        long start = System.currentTimeMillis();
        StringBuilder sb = new StringBuilder();


        for (int i = 0; i < 50000; i++) { 
   
            sb.append(i);
        }
        long end = System.currentTimeMillis();
        System.out.println(end-start);  // 6
// method();
    }

    private static void method() { 
   
        long start = System.currentTimeMillis();  // 获取1970年1月1日 0时0分0秒 到当前时间所经过的时间 是毫秒值
        String s = "";
        for (int i = 0; i < 50000; i++) { 
   
            s += i;
        }
        long end = System.currentTimeMillis();  // 记录循环结束时间
        System.out.println(end-start);  // 5114
    }
}

StringBuilder两种构造方式

public class Demo2StringBuilder { 
   
    public static void main(String[] args) { 
   
        StringBuilder sb = new StringBuilder();  // 无参构造
        System.out.println(sb);
        StringBuilder sb2 = new StringBuilder("sss");  // 有参构造
        System.out.println(sb2);
    }
}

StringBuilder的常用方法

appden()方法,表示添加数据

reverse()将字符串反转

toString()将StringBuilder转换成String类型的

具体代码如下

public class Demo3StringBuilder { 
   
    public static void main(String[] args) { 
   
        append();  // 添加数据
        reverse();  // 将字符串反转
        length();  // 计算字符串的长度
        StringBuilder sb = new StringBuilder();
        sb.append("skskk");
        // 将StringBuilder转换成String
        String s = sb.toString();  // 这里转换 虽然打印结果都一样但是类型不一样
        System.out.println(s);  // skskk
    }

    private static void append() { 
   
        // 向里边添加数据 通过append添加:并返回对象本身
        StringBuilder sb = new StringBuilder();
        sb.append(123);
        sb.append("asf");
        sb.append(true);
        System.out.println(sb);  // 123asftrue

        // 因为返回的是对象本身所以上边的也可以写成
        StringBuilder sb1 = new StringBuilder();
        sb1.append(123).append("asf").append(true);
        System.out.println(sb1);  // 123asftrue

        // 这里需要注意
        StringBuilder sb2 = new StringBuilder();
        StringBuilder sb3 = sb2.append("红色");
        StringBuilder sb4 = sb2.append("蓝色");
        System.out.println(sb2);  // 红色蓝色
        System.out.println(sb3);  // 红色蓝色
        System.out.println(sb4);  // 红色蓝色 这里的代码优化一下就得到了上边的代码
        sb2.append("红色").append("蓝色");
    }

    private static void reverse() { 
   
        StringBuilder sb = new StringBuilder();
        sb.append(1).append(2).append(3);
        System.out.println("反转之前:"+sb);
        sb.reverse();  // 通过reverse将字符串反转
        System.out.println("反转之后:"+sb);
    }
    private static void length() { 
   
        StringBuilder sb = new StringBuilder();
        sb.append("jlksjdlksjf");
        System.out.println("字符串的长度为:"+sb.length());  // 11
    }
}

StringBuilder的区别

String:内容是不可变的
StringBuilder:内容是可变的

    String s1 = "a";
    String s2 = s1+"b";
    此处s2 = s1 + "b"; 两个字符串相加,需要先把s1从String类型转换成Stringbuilder类型,然后才能将字符b添加里边,然后生成ab字符串,但是此时ab字符串还是StringBuilder类型。
    所以要先将StringBuildr类型转换成String类型才能将ab给s2,这也是为什么StringBuilder比String快的原因.

StringBuilder和String相互转换

1.StringBuilder转换为String
通过toString()就可以实现把StringBuilder转换为String。
String s = sb.toString();
2.String转换为StringBuilder
通过构造方法就可以实现把String转换为StringBuilder。
String s = “ss”;
StringBuilder sb = new StringBuilder(s);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160683.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 阶乘的累加和

    阶乘的累加和

    2021年9月27日
    75
  • java专业是什么专业,写的太详细了「建议收藏」

    java专业是什么专业,写的太详细了「建议收藏」前言SQL语句执行慢的原因是面试中经常会被问到的,对于服务端开发来说也是必须要关注的问题。在生产环境中,SQL执行慢是很严重的事件。那么如何定位慢SQL、慢的原因及如何防患于未然。接下来带着这些问题让我们开启本期之旅!第1章:Dubbo的简史、后续的规划和整体架构大图————Dubbo高性能RPC通信框架1.1应用架构演进过程1.2Dubbo简介1.3Dubbo总体大图第2章:Dubbo的环境配置和基于Dubbo开发第一款应用程序————开发第一款Dubbo应用程序

    2022年7月7日
    24
  • springboot和springmvc的区别

    springboot和springmvc的区别面试题:你知道springboot和springmvc的区别是什么?之前自己搭过springboot的相关项目,但是如何进行比较,从自我感觉来看就是使用springboot用起来几乎没有配置,个人搭的项目没有用到配置相关的内容。于是我就用了这个回答给面试官,可想而知,这种回答并不好。于是现在百度了相关文章,就把理解写成博客当做笔记。springmvc从两个方面…

    2022年6月10日
    38
  • 分治法大整数乘法c语言,大整数乘法(分治法)「建议收藏」

    分治法大整数乘法c语言,大整数乘法(分治法)「建议收藏」#include#includeusingnamespacestd;intnum(intu)//计算乘数的位数{inti,num;i=1;num=u/10;while(num!=0){u=num;num=u/10;i=i+1;}//cout<returni;}voidMUL(intu,inti,int&w,int&x)//将乘数分治{w=u/(pow…

    2022年6月2日
    33
  • 成为一名CV(计算机视觉)工程师,你需要具备哪些能力?[通俗易懂]

    成为一名CV(计算机视觉)工程师,你需要具备哪些能力?[通俗易懂]2019年国家对人工智能加大了支持力度,媒体对人工智能的资讯报道也越来越多,刚刚结束的人工智能大会也展示了国内现在的人工智能的发展状况,“双马”对话中也处处透露出对人工智能的美好展望。人工智能一个很大的应用方向是CV(计算机视觉)。CV在如制造业、检验、文档分析、医疗诊断和军事等领域中各种智能系统中不可分割。具体的像无人驾驶、人脸识别、VR/AR等,未来在医疗领域等还将有更大的发展。那么成为一名计算机视觉工程师应该具备哪些能力呢?首先数学要学好。大学里开过的高数、线性代数、概率统计等课都十分

    2022年4月20日
    87
  • 什么是java的关键字_java中常见的关键字

    什么是java的关键字_java中常见的关键字什么是关键字呢?概述:关键字就是在java语言中赋予特殊含义的单词特点:1.组成的关键字的单词全是小写2.常见的代码编辑器中,对关键字都有特殊的颜色标记比如在idea中对关键字都有特殊的颜色标记:在java中常见的关键字有很多,千万不能死记硬背,用一个记一个就行了,下面我举出一些常见的关键字。常见关键字:Abstract抽象的一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的…

    2022年7月7日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号