Java--StringBuilder类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Luojun13Class/article/details/86582367

前言

在Java中,有时候内容需要增加,但是由于大部分都是String类型,所以内容更改起来就非常不方便,这个时候,每当进行字符串拼接的时候,总是会在内存中创建一个新的对象,例如:

public class StringDemo {
    public static void main(String[] args) {
        String s = "Hello";
        s += "World";
        System.out.println(s);
    }
}

在API中对String类的描述是这样的,他们的值在创建后不能被更改。
根据这句话分析我们的代码,其实总共产生了三个字符串,即 “Hello” 、 “World” 和 “HelloWorld” 。引用变量s首先指向 Hello 对象,最终指向拼接出来的新字符串对象,即 HelloWord 。
在这里插入图片描述
由此可知,如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。为了解决这一问题,可以使用 java.lang.StringBuilder 类。

概述

查阅java.lang.StringBuilder的API,StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。原理如下图所示:(默认16字符空间,超过自动扩充)
在这里插入图片描述

1. 构造方法

根据StringBuilder的API文档,常用构造方法有2个:

  • public StringBuilder() :构造一个空的StringBuilder容器。
  • public StringBuilder(String str) :构造一个StringBuilder容器,并将字符串添加进去

2. 常用方法

StringBuilder常用的方法有2个:

  • public StringBuilder append(…) :添加任意类型数据的字符串形式,并返回当前对象自身。
  • public String toString() :将当前StringBuilder对象转换为String对象。

代码简单演示

public class Demo02StringBuilder {
	public static void main(String[] args) {    
		//创建对象        
		StringBuilder builder = new StringBuilder();        
		    // 可以添加 任何类型    
		builder.append("hello");        
		builder.append(true);        
		builder.append(100);        
	    //将StringBuilder转换为String类型
	    String s = builder.toString();
	    System.out.println(s)  
		// 在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。        
		// 这种时候,我们就可以把代码现在一起,如append方法一样,代码如下
		//链式编程        
		String s2 = builder.append("hello").append(true).append(100).toString();        
		System.out.println(s2);        
	}    
}

备注:StringBuilder已经覆盖重写了Object当中的toString方法。

猜你喜欢

转载自blog.csdn.net/Luojun13Class/article/details/86582367