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中有的时候,就要用到该方法 如图


StringBuilder的介绍、构造方法及成员方法的更多相关文章
- Java有参构造方法和成员方法
Java面向对象基础就包括有参构造方法和成员方法 无参构造声明方式为 class Teacher{ //无参构造方法,一般用在初始化变量 public Teacher(){ } } 有参构造声明为 c ...
- 毫秒值的概念和作用 --Date类的构造方法和成员方法
一, Date类类 Date 表示特定的瞬间,精确到毫秒. 毫秒:千分之一秒作用:可以对时间和日期进行计算可一把日期转换为毫秒进行计算,计算完毕,再转换为日期. 把日期转换为毫秒:当前的日期:202 ...
- 毫秒值的概念和作用与Date类的构造方法和成员方法
日期时间类 Date类 java.Util.Date:表示日期和实践类 类Date表示特定的瞬间,精确到毫秒 毫秒:千分之疫苗 1000毫秒 =1秒 特定的瞬间:一个时间点,一刹那使劲啊 2088-0 ...
- 8.4 StringBuilder的介绍及用法(String 和StringBuilder区别)
* StringBuilder:是一个可变的字符串.字符串缓冲区类.** String和StringBuilder的区别:* String的内容是固定的.(方法区的内容)* StringBuilder ...
- java继承关系中成员变量,构造方法,成员方法的关系
Java继承中的成员关系 A:成员变量 a:子类的成员变量名称和父类中的成员变量名称不一样,这个太简单写那个名字就访问那个名字! b:子类的成员变量名称和父类中的成员变量名称一样,这个怎么访问呢? 子 ...
- StringBuilder类介绍
1 package cn.itcast.p2.stringbuffer.demo; 2 3 public class StringBuilderDemo { 4 public static void ...
- JAVA String介绍、常量池及String、StringBuilder和StringBuffer得区别. 以及8种基本类型的包装类和常量池得简单介绍
一.概述 String是代表字符串的类,本身是一个最终类,使用final修饰,不能被继承. 二.定义方式 方式一:直接赋值法 String str1 = "hello"; 方式 ...
- 构造方法、封装、关键字(this、static)和代码块的介绍
1.构造方法 1.1 构造方法与成员方法的区别 构造方法分为无参构造和有参构造,其中有参构造方法和无参构造方法为方法的重载关系. 构造方法在初始化一个类的对象时进行调用,它没有返回值,方法名与类名相同 ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
- java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。
首先先说一下类的加载,流程.只有明确了类这个对象的存在才可以更好的理解反射的原因,以及反射的机制. 一. 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三 ...
随机推荐
- 电信机顶盒(烽火HG680-KA)安装第三方APP
一.前言 最近我回家休息了几天,正好赶上了暑期电视剧的更新.于是,我就在客厅里舒舒服服地坐下来,准备大饱眼福.然而,当我打开电视机准备观赏时,却发现几乎所有的电视剧都要VIP会员才能观看.于是有了以下 ...
- 中间件 vs 过滤器
在 ASP.NET Core 中,中间件(Middleware) 和 过滤器(Filters) 是两种不同的机制,用于处理请求和响应的管道.它们的作用和适用场景有所不同,以下是它们的对比和详细说明: ...
- Java AQS学习笔记
1. AQS介绍 AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面. AQS是一个用来构建锁和同步器的框架,使 ...
- Java实现LDAP登录
LDAP的全称是Lightweight Directory Access Protocol(轻量级目录访问协议),是一种用于访问和管理分布式目录信息服务的应用协议.LDAP通常用于存储用户.组和其他组 ...
- 一键部署Palworld幻兽帕鲁服务器最佳实践
本文基于天翼云通用型云主机,为您介绍通过镜像一键部署Palworld幻兽帕鲁服务器的具体操作. Ubuntu系统 1.按需购买云主机.通过Palworld专属活动优惠页一键购买开通云主机. 根据需要选 ...
- 硬件设计:POE--POE受电设备(PD)电路工作原理
参考资料:解决POE PD设计挑战的有效的解决方案 POE电源模块的介绍特性和芯片的详细资料概述 如何应对PoE受电设备设计挑战 以太网供电中受电设备的芯片设计与研究 以太网供电检测和分级接口电路设计 ...
- 闲话 4.12——对 Worpitzky 恒等式的几个证明
\[\sum_{i}\left\langle\begin{matrix}n\\i\end{matrix}\right\rangle \binom{i+k}{n}=k^n \] 通俗的证明(具体数学的习 ...
- Luogu P10581 蓝桥杯2024国A 重复的串 题解 [ 蓝 ] [ KMP ] [ 动态规划 ] [ 矩阵加速 ]
重复的串:KMP + dp 的板子题. 暴力 dp 设计 \(dp_{k,i,j}\) 表示主串匹配到第 \(i\) 位,模式串有 \(j\) 位已匹配完成,目前已完成 \(k\) 次匹配的方案数. ...
- C# 钩子函数使用
1. 什么是钩子 hook(钩子)是windows提供的一种消息处理机制平台,是指在程序正常运行中接受信息之前预先启动的函数,用来检查和修改传给该程序的信息,(钩子)实际上是一个处理消息的程序段,通过 ...
- vim编译和安装clang_complete插件
今天找到一个插件clang_complete可以进行语法补全,可能不是很好用.但是vim上用应该也差不多了 全文按照这个链接去操作, configure的时候我配置的目录是/usr/bin/vimv8 ...