Java--StringBuilder类

Java中的String类在内容更改时效率低下,因为每次拼接都会创建新对象。为解决此问题,StringBuilder类提供了一个可变的字符序列,允许在原地修改字符串,避免了额外的对象创建。StringBuilder具有两种构造方法:无参构造器创建空容器,带参数构造器初始化时添加字符串。其关键方法包括append用于追加内容和toString用于转换为String对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在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方法。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值