前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA中StringBuilder学习

JAVA中StringBuilder学习

作者头像
全栈程序员站长
发布2022-09-09 14:58:30
2400
发布2022-09-09 14:58:30
举报
文章被收录于专栏:全栈程序员必看

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

StringBuilder概述

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

代码语言:javascript
复制
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两种构造方式

代码语言:javascript
复制
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类型的

具体代码如下

代码语言:javascript
复制
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:内容是可变的

代码语言:javascript
复制
    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.cn/160683.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • StringBuilder概述
    • StringBuilder两种构造方式
      • StringBuilder的常用方法
        • appden()方法,表示添加数据
        • reverse()将字符串反转
        • toString()将StringBuilder转换成String类型的
      • StringBuilder的区别
        • StringBuilder和String相互转换
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档