StringBuffer是String的增强类

文章目录

  • StringBuffer是String的增强类
    • 添加
    • 删除
    • 替换
    • 插入
    • 长度
    • StringBuffer练习题
    • 欢迎评论一起学习,如果觉得本文章对你有帮助,一键三连支持一下

1.StringBuffer的直接父类是AbstractStringBuilder

2.StringBuffer实现了Serializable 即StringBuffer的对象可以串行化

3.在父类中 AbstractStringBuilder 有属性 char[] value,不是final

在该value数组存放字符串内容,引出存放在堆中的

4.StringBuffer 是一个final类 不能被继承

5.StringBuffer是存放在 char[] value ,所有的变化 不用每次创建新对象,更换地址所以效率高于String

StringBuffer 构造器默认为初始化16个字符

StringBuffer中的常用方 法

添加

首先我们需要创建一个StringBuffer对象

可以有初始值

添加语法:StringBuffer对象.append(插入的string值)

StringBuffer string = new StringBuffer("hello,")
string.append("world")
//输出为  hello,world
//添加多个可以直接 append.append.append
string.append("good").append("true")
//输出  hello,worldgoodtrue

删除

删除是删除开始索引到结束索引位置的 注意不包含结束索引值

语法:StringBuffer对象.delete(开始索引,结束索引)

string.delete(1,4)
//输出为 ho,worldgoodtrue

在hello中的o是第四个索引位置 并没有删除这里可以看出删除并不包含结束索引值 这是一个典型的左闭右开原则

替换

替换也是一个典型的左闭右开原则

语法: StringBuffer对象.replace(开始索引,结束索引,替换掉的新值)

string.replace(0,3,"java")
//输出结果  javaworldgoodtrue

插入

插入可以在指定位置索引插入内容,比如说有一个String 内容为abcd 但是我们想变成aocd 是不是很麻烦这时候发现还是StringBuffer类好用

语法:StringBuffer对象.inert(要插入的索引位置,插入的值)

string.inert(0,"hello")
//结果为hellojavaworldgoodtrue

上面我们在索引为0的位置插入了hello但是小伙伴们会发现j是索引为0的位置并没有被替换掉这是因为字符在插入时会自动向后移并不会消失

长度

StringBuffer对象.length()

返回一个StringBuffer对象内字符长度

//string在上面结果为hellojavaworldgoodtrue
string.length()
//打印结果为22

StringBuffer练习题

查看下列代码输出什么?为什么?

String a = null
StringBuffer string = new StringBuffer()
System.out.println(string.length())

第一个创建了一个String对象 赋值了一个null 肯定是没问题

第二个创建了一个StringBuffer对象也是没问题的,

第三个就需要想一想StringBuffer是否支持空值面对空值StringBuffer是如何去处理的

其实底层调用的是一个AbstractStringBuilder的appendNull()方法 如果为空会赋值 null字符

也就是说输出为4

欢迎评论一起学习,如果觉得本文章对你有帮助,一键三连支持一下

StringBuffer(史上最详细)相关推荐

  1. 史上最详细的微生物扩增子数据库整理

    声明:文件所有链接内容来自"生信控"公众号,已经获作者向屿授权. 本人对每个数据库的使用目的和经验配导读,需要使用的小伙伴读点击链接跳转原文学习. "生信控"相 ...

  2. 史上最详细版Centos6安装详细教程

    镜像CentOS-6.8-x86_64-bin-DVD1.ISO 将下载好的镜像上传到服务器,并选择该镜像(详情请看上篇exsi镜像上传文章) 一.安装开始 开机选择第一项 这里询问我们是否要对光盘进 ...

  3. 史上最详细“截图”搭建Hexo博客——For Windows

    http://angelen.me/2015/01/23/2015-01-23-%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86%E2%80%9C%E6%88 ...

  4. 不仅有史上最详细Docker 安装Minio Client,还附带解决如何设置永久访问和永久下载链接!!(详图)绝对值得收藏的哈!!!!

    背景: 这两天在整理知识点,然后在学习Minio,一开始遇到更新,整了我不少时间,之前用的太久了,改了不少东西.用了之后发现不知道怎么设置成永久访问,就出了这篇文章. 史上最详细Docker安装最新版 ...

  5. 史上最详细Docker安装最新版Minio 带详解 绝对值得收藏!!! 让我们一起学会使用minio搭建属于自己的文件服务器!!走上白嫖之路!解决启动了但是浏览器访问不了的原因

    让我们一起学会使用minio搭建属于自己的文件服务器!!走上白嫖之路! WARNING: Console endpoint is listening on a dynamic port (34451) ...

  6. 史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!!

    史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!! 部署jar 包方式: https://blog.csdn.net/weixin_45821811/article/d ...

  7. 史上最详细的Android Studio系列教程四--Gradle基础

    史上最详细的Android Studio系列教程四--Gradle基础 转载于:https://www.cnblogs.com/zhujiabin/p/5125917.html

  8. 史上最详细的MySQL操作事例

    史上最详细的MySQL操作事例 文章目录 史上最详细的MySQL操作事例 一.数据库的操作 二.数据表的操作 三.数据表的增删查该 四.数据准备 五.条件查询 六.排序 七.聚合函数 八.分组 九.分 ...

  9. Windows server 2003域控直接迁移到2012[史上最详细]

    Windows server 2003域控直接迁移到2012[史上最详细] 有问题请联系QQ:185426445,或者加群微软统一沟通中国(一),群号:222630797, 也可以和我本人联系,手机: ...

最新文章

  1. 1.9 可避免误差-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  2. 登录抓包逆向分析学习笔记
  3. URAL 1033 Labyrinth
  4. IIS服务器绑定域名问题
  5. java 6 基础教程_Java小白入门教程(6)——循环语句
  6. 【渝粤题库】陕西师范大学200991教育统计学作业(高起本)
  7. 写一个类Army,代表一支军队,这个类有一个属性Weapon数组w(用来存储该军队所拥有的所有武器), 该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有
  8. csv导入mysql_京东金融数据分析:MySQL+HIVE的结合应用案例详解【附全代码】
  9. mysql选择前12周_第十二周作业
  10. 海量小文件存储(转)
  11. matlab色差,计算CMC色差公式的matlab程序
  12. 网站创业项目商业计划书的写法
  13. java实现pdf旋转_Java实现PDF文本旋转倾斜的方法
  14. JavaEE - 集合 - Collection集合
  15. 王道408思维导图 marginnote 【4门科齐全】Xmind+脑图原件可下载 - 在线分享
  16. Python 字节数组 和 16进制字符串转换
  17. 2022第四届长安杯检材一wp
  18. SD卡启动tiny4412标准版(1306)的linux系统并挂载网络根文件系统
  19. 张一鸣:如何深度思考
  20. 【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇)

热门文章

  1. 无法连接到internet 小黄叹号长时间不消失的问题
  2. 工作中要怎样与同事相处呢?
  3. 店盈通:拼多多怎么没有差评?怎么退款?
  4. 小程序流量主广告赚钱
  5. JAVA疫情数据项目(JAVA课程设计)
  6. 【科研杂记_3】测高卫星
  7. 经验分享给你!小伙利用业余时间听歌赚钱,一个月挣了6000?
  8. 免费开源解压缩软件7-Zip
  9. Opencv Python图像处理进阶教程②
  10. CMD快捷指令之启动字符映射表