第一章.StringBuilder类

2024-06-12 00:52
文章标签 第一章 stringbuilder

本文主要是介绍第一章.StringBuilder类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.StringBuilder的介绍

1.概述:一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证线程同步

2.作用:主要作用是拼接字符串

3.明明String可以做字符串拼接,那为啥还要学StringBuilder?

  • a.String做拼接的时候,会产生新的字符串对象,如果要是频繁用String拼接,会出现很多新的字符串对 象,占用内存
  • b.StringBuilder底层自带缓冲区,我们拼接的字符串都会出现在缓冲区中,不会每次拼接不会随意产生新 字符串对象,效率高,省内存

4.StringBuilder特点:

  • a.StringBuilder底层也是一个char数组(缓冲区),但是这个char数组没有被final修饰,地址值可变
  • b.StringBuilder底层的缓冲区默认为16
  • c.StringBuilder拼接字符串,会自动放到缓冲区中,如果拼接的字符串,超出了缓冲区长度,缓冲区(数 组)会自动扩容
  • d.StringBuilder底层扩容为老数组的2倍+2
  • e.创建一个新长度的新数组,将老数组的元素复制到新数组中,然后将新数组地址值给老数组

2.StringBuilder的使用

1.构造:

StringBuilder() 
StringBuilder(String str)  

public class Demo01StringBuilder {public static void main(String[] args) {StringBuilder sb1 = new StringBuilder();System.out.println(sb1);System.out.println("=====================");StringBuilder sb2 = new StringBuilder("abc");System.out.println(sb2);}
}

2.常用方法:

  • StringBuilder append(任意类型数据) -> 往缓冲区中追加内容,返回StringBuilder自己-> 可以 理解为拼接
  • StringBuilder reverse()->内容翻转,返回StringBuilder自己
  • String toString()->将StringBuilder对象转成String对象

public class Demo02StringBuilder {public static void main(String[] args) {//StringBuilder append(任意类型数据) -> 往缓冲区中追加内容,返回StringBuilder自己-> 可以理解为拼接StringBuilder sb1 = new StringBuilder();sb1.append("张无忌");sb1.append("周芷若");System.out.println(sb1);/*
如果调用某一个方法,返回了某一个对象,就可以直接往后点此对象的方法
链式调用
*/sb1.append("赵敏").append("灭绝师太").append("金毛狮王").append("紫衫龙王");System.out.println(sb1);//StringBuilder reverse()->内容翻转,返回StringBuilder自己sb1.reverse();System.out.println(sb1);//String toString()->将StringBuilder对象转成String对象String s = sb1.toString();System.out.println(s.length());}
}

需求:

键盘录入一个字符串,判断是否为回文内容-> 比如:

上海自来水来自海上

1234321

abcba

public class Demo03StringBuilder {public static void main(String[] args) {//1.创建Scanner对象Scanner sc = new Scanner(System.in);System.out.println("请您输入一个字符串:");String data = sc.next();//2.创建StringBuilder对象,将输入的字符串放进去StringBuilder sb = new StringBuilder(data);//3.翻转内容sb.reverse();//4.将StringBuilder对象转成String对象String s = sb.toString();if (s.equals(data)){System.out.println("是回文内容");}else{System.out.println("不是回文内容");}}
}

3.练习

定义一个数组,以[元素1, 元素2, 元素3..]的形式输出,用StringBuilder拼接

自己写

   class Aain {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5};StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {sb.append(arr[i]);if (i != arr.length - 1) {sb.append(", ");}}sb.append("]");System.out.println(sb.toString());}}

4.String 和StringBuilder以及StringBuffer区别

String: 拼接字符串效率低,每拼接一次,都会产生一个新的字符串,耗费内存资源

StringBuilder和StringBuffer区别:

相同点: 用法一样,作用一样

不同点: StringBuilder: 效率比StringBuffer高 线程不安全

StringBuffer: 效率低 线程安全

拼接效率来说: StringBuilder>StringBuffer>String

小结:简单记录一下。

这篇关于第一章.StringBuilder类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1052740

相关文章

【自然语言处理】第一章绪论

第一章 绪论 文章目录 第一章 绪论1. 什么是自然语言2. 自然语言处理的定义2.1 自然语言处理NLP2.2 计算语言学CL2.3 NLP与CL 3. 自然语言处理的研究内容3.1 研究对象3.2 研究层次3.3 研究问题3.4 研究内容3.4.1 资源建设3.4.2 基础研究3.4.3 应用技术研究3.4.4 应用系统 4. 自然语言处理的流派5. 自然语言处理的挑战

第一章 MUD:创造世界的巫师

自从有了游戏之后,人们不满足于做屏幕前的操控者,而是梦想着自己能够进入到游戏的绚丽世界中,在剑与魔法的世界中拯救世界,称为吟游诗人歌颂的屠龙 勇者,或者在武侠世界中快意恩仇,体验江湖恩怨儿女情长。网络游戏的出现让这个梦想渐渐变为可以触摸的东西,直至成为现实。   如果要追溯网络游戏的历史,我们要将目光投向20世纪70年代。早在1969年,美国人瑞克•布罗米(Rick Blom

第一篇 第一章资金时间价值计算及应用 第二章经济效果评价

第1章 资金时间价值计算及应用 资金具有时间价值 1.1 利息的计算 1.1.1 利息和利率 I=F-P 债务人为资金需求方 债权人为资金供给方利息对经济活动的影响(1.影响企业行为 2.影响居民资产选择行为 3.影响政府行为) 利率 1.影响因素(1.社会平均利润率的高低 2.市场资金供求对比状况 3.资金要承担的风险 4.债务资金使用期限长短 5.政府宏观调控政策 6.经济周期所处

string,stringBuffer,stringBuilder性能分析

一般情况下三者的速度快慢是这样的:stringBuilder>stringBuffer>string。 当经常更改字符串的内容时, stringBuffer的性能比string更快一些 stringBuffer>string

第一章 软件工程的概述简记

第一章  软件工程的概述         *软件的概念:软件(Software)是一系列按照特定顺序组织的计算机数据和指令的集合。         软件的分类:(5大类)                   *1.基于软件功能划分                                  1)系统软件

第一章——计算机系统概述

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝 🏆所属专栏: 计算机组成原理   欢迎订阅,持续更新中~~~                                                       ✨让小新带着你快乐的学习吧~✨ 目录 前言 一、操作系统的概念和

第一章 感受mac之美-换一种方式用电脑,开启新历程

感谢关注我的读者一直以来的追随与信任。去年到今年以来大环境都不是很好。裁员,机构优化,工厂倒闭,公司破产,贸易战等消息传来,不少还是身边发生的。今年开年以来更是有病毒横行,天降蝗灾等灾害。愿大家都好好的,同时希望这场战役早早告捷。今天是二月二 ,民间传说龙抬头,祝愿大家从此事业腾飞,从此出人头地。 我在这断更的两年中的一些情况,一直处于闭关的状态,一直在学习与实践。后续再和大家一起分享这俩年

考研408《计算机组成原理》复习笔记,第一章计算机系统概述

本人打算从今到2026年不再更新过多的前后端开发的笔记,因为要准备考研了,所以停更前面的开发教程。 这些都是我看完书、视频、做完题后,结合个人理解总结的知识点,希望对各位有帮助。一切都是用最快最精炼的方式讲清楚。 一、计算机发展历程 第一代:电子管时代第二代:晶体管时代第三代:中小规模集成电路时代第四代:超大规模集成电路时代 就这么记就行了,很少考你历程这些细节的。 二、计算机系统结

Java实用类——StringBuffer类和StringBuilder类

StringBuffer类和StringBuilder类位于java.util包中,是String类的增强型,提供了很多方法可供使用 StringBuffer和StringBuilder出现的原因是:使用+拼接字符串会浪费大量内存空间 String a = "Hello";a = a + "chmy"; 新的a指向hellochmy 静态常量池中多了两个字符串hello和chmy

【软件工程】第一章软件工程引论

【软件工程】第一章软件工程引论 文章目录 【软件工程】第一章软件工程引论1. 什么是软件1.1 软件的定义1.2 软件特征1.3 挑战与危机 2. 什么是工程2.1 什么是工程2.2 怎么做工程 3. 什么是软件工程3.1 软件工程的提出3.2 软件工程的经典定义3.3 软件工程设计的知识域3.4 系统工程3.5 软件工程的全流程 4. AI时代的软件工程4.1 智能软件工程4.2 大模型