• Java中StringBuilder相关知识点


    StringBuilder

    1.StringBuilder概述

    • 如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,既耗时又浪费空间,而且这种操作还不可避免。我们可以通过StringBuilder类来解决这个问题。
    • StringBuilder是一个可变的字符串类,我们可以把它看成一个容器,这里说的可变是指StringBuilder对象中的内容是可变的。

    String和StringBuilder的区别:

    • String中内容是不可变得
    • StringBuild中的内容是可变的

    2.StringBuilder构造方法

    构造方法活命 说明
    public StringBuilder() 创建一个空白的可变字符串对象,不含有任何内容
    public StringBuilder(String str) 根据字符串的内容来创建可变的字符串对象

    示例:

    package com.itheima_02;
    
    public class StringBuilderDemo01 {
        public static void main(String[] args) {
            //StringBuilder的两种构造方法:
    
    
            //public StringBuilder():创建一个空白的可变字符串对象,不含有任何内容
                StringBuilder sb = new StringBuilder();
                System.out.println("sb:"+sb);
                System.out.println("sb.length():"+ sb.length());
            //public StringBuilder(String str):根据字符串的内容来创建可变的字符串对象
                StringBuilder sb2 = new StringBuilder("abc");
                System.out.println("sb2:"+sb2);
                System.out.println("sb2.length():"+ sb2.length());
    
        }
    }
    

    3.StringBuilder的添加和反转方法

    方法名 说明
    public StringBuilder append(任意类型) 添加数据,并返回对象自身
    public StringBuilder reverse() 返回相反的字符串序列
    //创建对象
    //public StringBuilder append(任意类型)添加数据,并返回对象自身
    StringBuilder sb = new StringBuilder();
    StringBuilder sb2 = sb.append("hello");
    
    System.out.println("sb:" + sb);
    System.out.println("sb2:" + sb2);
    System.out.println(sb == sb2);
    //因为append返回的对象自身,所以sb和sb2所指向的为同一块区域
    

    示例:

    package com.itheima_02;
    
    public class StringBuilder02 {
        public static void main(String[] args) {
            //创建对象
            //public StringBuilder append(任意类型)添加数据,并返回对象自身
            StringBuilder sb = new StringBuilder("hello");
    
    //        sb.append("world");
    //        sb.append("你好");
    //        sb.append("世界");
    //        sb.append(999);
            //链式编程
            sb.append("world").append("你好").append("世界").append(999);
            System.out.println("sb:" + sb);
            //public StringBuilder reverse()返回相反的字符串序列
            sb.reverse();
            System.out.println("sb.reverse():"+sb);
    
    
    
        }
    }
    
    

    4.StringBuilder和String相互转换

    4.1 StringBuilder转换为String

    ​ public String toString():通过toString()就可以实现把StringBuilder转换为String

    //StringBuilder 转换为 String
    StringBuilder sb = new StringBuilder();
    sb.append("hello");
    //String s = sb;//错误的做法
    //public String toString():通过toString()就可以实现把StringBuilder转换为String
    String s = sb.toString();
    System.out.println(s);
    

    4.2 String转换为StringBuilder

    ​ public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder

    String s = "hello";
    //StringBuilder sb = s; //错误的做法
    //public StringBuilder(String s):通过构造方法就可以实现把String转换为StringBuilder
    StringBuilder sb = new StringBuilder(s);
    System.out.println(sb);
    
  • 相关阅读:
    .net MVC 下载文件乱码问题解决方案
    javascript将json转字符串
    js中将字符串转换成json的三种方式
    mvc项目,导出到Excel,中文显示乱码
    20160606面试题总结
    bzoj 4318: OSU!
    bzoj 1419: Red is good
    Codeforces 123 E Maze
    HDU 4336 Card Collector
    Codeforces 540 D Bad Luck Island
  • 原文地址:https://www.cnblogs.com/icyhblog/p/14087876.html
Copyright © 2020-2023  润新知