StringBuilder的介绍、构造方法及成员方法

1.StringBuilder的介绍

1.StringBuilder是字符串缓冲区,可以认为是一种容器,能装任何类型的数据,但被装入的数据都会变为字符串 如图


无论是什么类型的数据,被装入字符串缓冲区后都被拼接成字符串

2.StringBuilder是一种可变的字符序列

2.StringBuilder的构造方法

1.StringBuilder()

在创建对象时,就会调用构造方法StringBuilder(),会创建出一个空的字符串缓冲区,即一个空的容器,要让容器有数据,得由程序员自行装入

2.StringBuilder(String str)

在创建对象时就会调用该构造方法,会创建出一个带有初始化内容的字符串缓冲区,其内容则是括号里的数据

3.StringBuilder的成员方法

1.StringBuilder append(任意类型)

使用该方法可以将括号里的任意类型的数据装入字符串缓冲区(StringBuilder) 如图

添加数据仅仅是常规功能,重要的是返回对象本身

什么是返回对象本身?不妨看看下图

明明使用的是sb1进行接收,并且是用sb1调用的append,为什么打印sb时,控制台上却都显示了sb1装入的数据?

答:1.首先,在append方法上我们发现它返回类型是StringBuilder,而sb的类型也是StringBuilder,因此append可以返回值给sb这个对象

2.因为append返回了sb,所以当装入了数据时,sb就会接收到这些数据,而sb1仅仅是一个中介,sb1.append()所装入的数据也因为append这个方法可以返回对象本身,而被sb所接收,所以我们打印sb就会出现这些数据

根据上面的解释,我们会发现我们貌似完全不需要sb1这个中介 如图

链式编程:调用的方法,返回的结果是对象,就可以继续向下调用方法

知识:今后,只要返回结果是对象的方法,都可以使用链式编程

提问:为什么打印的这四个变量的数据一模一样?


答:因为这4个数据都使用的append方法,而append方法返回的结果是对象,也就说明这四个方法指向同一块内存空间(sb),而sb的值就是所有装入的数据,因此打印的结果一样


2.StringBuilder reverse()

将缓冲区里的字符串进行内容反转,因为返回类型也是StringBuilder 所以返回的结果也是对象,也可以使用链式编程

注意,返回结果是对象的方法,是可以相互使用的


这里是先反转了之前sb所装入的数据,而后又装入新的数据,所以“我没有反转”没有被反转

3.int length()

返回sb里装入的字符串长度

4.toString()

将StringBuilder类型转换为String类型

明明StringBuilder就可以打印括号里的字符串,为什么还要转换成String进行打印?

tostring()的应用场景:当数据存在StringBuilder中,但是我们要调用的方法在StringBuilder中没有,但是String中有的时候,就要用到该方法 如图


posted @ 2024-12-06 19:47  直実  阅读(18)  评论(0编辑  收藏  举报