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);
posted on 2020-12-04 21:28  凌落宸  阅读(122)  评论(0编辑  收藏  举报