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的介绍、构造方法及成员方法的更多相关文章

  1. Java有参构造方法和成员方法

    Java面向对象基础就包括有参构造方法和成员方法 无参构造声明方式为 class Teacher{ //无参构造方法,一般用在初始化变量 public Teacher(){ } } 有参构造声明为 c ...

  2. 毫秒值的概念和作用 --Date类的构造方法和成员方法

    一,  Date类类 Date 表示特定的瞬间,精确到毫秒. 毫秒:千分之一秒作用:可以对时间和日期进行计算可一把日期转换为毫秒进行计算,计算完毕,再转换为日期. 把日期转换为毫秒:当前的日期:202 ...

  3. 毫秒值的概念和作用与Date类的构造方法和成员方法

    日期时间类 Date类 java.Util.Date:表示日期和实践类 类Date表示特定的瞬间,精确到毫秒 毫秒:千分之疫苗 1000毫秒 =1秒 特定的瞬间:一个时间点,一刹那使劲啊 2088-0 ...

  4. 8.4 StringBuilder的介绍及用法(String 和StringBuilder区别)

    * StringBuilder:是一个可变的字符串.字符串缓冲区类.** String和StringBuilder的区别:* String的内容是固定的.(方法区的内容)* StringBuilder ...

  5. java继承关系中成员变量,构造方法,成员方法的关系

    Java继承中的成员关系 A:成员变量 a:子类的成员变量名称和父类中的成员变量名称不一样,这个太简单写那个名字就访问那个名字! b:子类的成员变量名称和父类中的成员变量名称一样,这个怎么访问呢? 子 ...

  6. StringBuilder类介绍

    1 package cn.itcast.p2.stringbuffer.demo; 2 3 public class StringBuilderDemo { 4 public static void ...

  7. JAVA String介绍、常量池及String、StringBuilder和StringBuffer得区别. 以及8种基本类型的包装类和常量池得简单介绍

    一.概述 String是代表字符串的类,本身是一个最终类,使用final修饰,不能被继承. 二.定义方式   方式一:直接赋值法 String str1 = "hello"; 方式 ...

  8. 构造方法、封装、关键字(this、static)和代码块的介绍

    1.构造方法 1.1 构造方法与成员方法的区别 构造方法分为无参构造和有参构造,其中有参构造方法和无参构造方法为方法的重载关系. 构造方法在初始化一个类的对象时进行调用,它没有返回值,方法名与类名相同 ...

  9. 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】

    day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...

  10. java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。

    首先先说一下类的加载,流程.只有明确了类这个对象的存在才可以更好的理解反射的原因,以及反射的机制. 一.  类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三 ...

随机推荐

  1. 编译Ubuntu 24.04 LTS 内核(BuildYourOwnKernel)

    1.配置环境 修改apt源 修改 /etc/apt/sources.list.d/ubuntu.sources ,添加 "deb-src"到 Types:,修改后的文件内容如下: ...

  2. ffmpeg 去除音频中的静音

    去除音频中的静音 //去除所有超过0.3秒的静音部分 ffmpeg -i input.mp3 -af silenceremove=stop_periods=-1:stop_duration=0.3:s ...

  3. w3cschool-微信小程序开发文档-组件

    https://www.w3cschool.cn/weixinapp/sp6z1q8q.html 微信小程序视图容器 view view 视图容器. 属性 类型 默认值 必填 说明 最低版本 hove ...

  4. Java线程池实现原理与源码解析(jdk1.8)

    为什么需要线程池?线程池能够对线程进行统一分配,调优和监控:- 降低资源消耗(线程无限制地创建,然后使用完毕后销毁)- 提高响应速度(无须创建线程)- 提高线程的可管理性 Java是如何实现和管理线程 ...

  5. Robot Framework 自动化测试部署常见问题及处理方法(三)

    书接上文 8.关于IE浏览器 IE浏览器必须是原生版,即Windows系统原版,非手动升级后的版本 9.用例执行过程中,遇到元素定位不到的情况 原因: ⑴xpath动态变化 ⑵有frame/ifram ...

  6. .net工作流elsa-触发器

    必备知识 触发器会用到书签和调度,这个在我的另外两篇文章中有分析. 什么是触发器 可以直接调用流程引擎的IWorkflowRuntime获取IWorkflowClient,然后调用它的CreateAn ...

  7. MySQL Event Scheduler were found damaged

    Navicat操作Mysql时报错信息:Cannot proceed because system tables used by Event Scheduler were found damaged ...

  8. FLink处理函数ProcessFunction、KeyedProcessFunction、ProcessWindowFunction、 ProcessAllWindowFunction

    一.处理函数简介 在底层,我们可以不定义任何具体的算子(比如 map,filter,或者 window),而只是提炼出一个统一的"处理"(process)操作--它是所有转换算子的 ...

  9. DeepSeek普照的阳光下,继续RAG还是Distillation?

    什么是RAG RAG概述 RAG,全称为Retrieval-Augmented Generation(检索增强生成),是一种结合了信息检索和文本生成的人工智能技术.简单来说,RAG通过从大量文档或数据 ...

  10. 牛客题解 | 单组_spj判断YES与NO

    题目 题目链接 解题思路 后台有spj代码,能对同学们的输出数据进行校验,符合条件即可通过. 附赠 spj 代码 #include <iostream> #include <fstr ...