当前位置: 首页 > news >正文

Java的StringBuffer类

基本介绍:

1.java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删

2.很多方法与String相同,但StringBuffer是可变长度的(原String是final类型的)

3.StringBuffer是一个容器

package com.String_;public class StringBuffer01 {public static void main(String[] args) {//解读//1.StringBuffer直接父类是AbstractStringBuilder//2.它实现了Serializable,即StringBuffer的对象可以串行化/*3.StringBuffer父类StringBuilder的源码://abstract class AbstractStringBuilder implements Appendable, CharSequence {//The value is used for character storage.char[] value;可以看到,在它的父类中,有一个属性就是char[] value;,该value数组存放字符串内容由于它不是final类型,因此是存放在堆中而不是常量池(final类型存放在常量池)*///4.StringBuffer是一个final类,也就是说不能被继承//5.因为StringBuffer字符内容是存在char[] value,所有在变化(增加/删除)//  不用每次都更换地址(即不是每次都创建新的对象),所以它的效率高于StringStringBuffer stringBuffer = new StringBuffer("泥嚎");}
}

StringBuffer和String对比:

1)String保存的是字符串常量,里面的值不能更改,每次String类的更新实际上就是更改地址,效率较低

2)StringBuffer保存的是字符串常量,里面的值可以更改,每次StringBuffer的更新实际上可以更新内容,不用每次更新地址,效率较高

StringBuffer的构造器:

public class StringBuffer02 {static void main(String[] args) {//创建一个大小为16的char[],用于存放字符内容StringBuffer stringBuffer = new StringBuffer();//通过构造器指定char[]的大小StringBuffer stringBuffer1 = new StringBuffer(100);//通过给一个String创建StringBuffer,大小就是你字符串长度+16StringBuffer hello = new StringBuffer("hello");/*public StringBuffer(String str) {super(str.length() + 16);append(str);}通过源码可知,是根据当前字符串长度 + 16来指定char[]长度如传入"hello",则长度为5 + 16 = 21*/}
}

String和StringBuffer相互转换:

public class StringAndStringBuffer {public static void main(String[] args) {//String --> StringBufferString str = "hello tom";//方式一,使用构造器:    返回的是StringBuffer,对str本身没有影响StringBuffer stringBuffer = new StringBuffer(str);//方式二,使用append()StringBuffer stringBuffer1 = new StringBuffer();stringBuffer1 = stringBuffer1.append(str);//StringBuffer --> StringStringBuffer stringBuffer3 = new StringBuffer("泥嚎");//方式一,使用StringBuffer提供的toString()String s = stringBuffer3.toString();//方式二:使用构造器直接newString s1 = new String(stringBuffer3);}
}

StringBuffer类常见方法:

1)增append

2)删delete

3)改replace(start,end,String)        //将start --- end 间的内容替换掉,不含end

4)查indexOf        //查找字串在字符串第一次出现的索引,如果找不到返回-1

5)插insert

6)获取长度length

package com.String_;public class StringBufferMethod {public static void main(String[] args) {StringBuffer s = new StringBuffer("hello");//增s.append(',');// "hello,"s.append("张三丰");//"hello,张三丰"s.append("赵敏").append(100).append(true).append(10.5);//"hello,张三丰赵敏100true10.5"System.out.println(s);//"hello,张三丰赵敏100true10.5"//删/** 删除索引为>=start && <end 处的字符* 解读: 删除 11~14的字符 [11, 14)*/s.delete(11, 14);System.out.println(s);//"hello,张三丰赵敏true10.5"//改//老韩解读,使用 周芷若 替换 索引9-11的字符 [9,11)s.replace(9, 11, "周芷若");System.out.println(s);//"hello,张三丰周芷若true10.5"//查找指定的子串在字符串第一次出现的索引,如果找不到返回-1int indexOf = s.indexOf("张三丰");System.out.println(indexOf);//6//插//老韩解读,在索引为9的位置插入 "赵敏",原来索引为9的内容自动后移s.insert(9, "赵敏");System.out.println(s);//"hello,张三丰赵敏周芷若true10.5"//长度System.out.println(s.length());//22System.out.println(s);}
}
http://www.dtcms.com/a/541286.html

相关文章:

  • 商务网站建设的流程网站建设需求分析报告撰写
  • EagleTrader交易员采访|用概率取代情绪,让交易回归理性
  • 【复现】AI-IMU Dead-Reckoning
  • 哪个建设网站公司好苏州网站建设软件
  • 帮别人设计做关于图的网站关键词排名推广
  • Kotlin reified泛型 和 Java 泛型 区别
  • 新手如何优化网站排名国外网站注册
  • 湖南网站建设效果东莞南城做网站推广的公司
  • langchain agent将用户问题转sql并运行sql查询
  • 前端之轮播图代码优化
  • 德州网站有哪些特价服务器
  • 山西省太原建设工程信息网站网站地域分站怎么做
  • 【机器学习09】调试策略、错误分析、数据增强、迁移学习
  • 网站开发相关技术天空影院手机免费观看在线
  • 南昌哪里做网站好几百块钱建网站
  • 目标使用过期的TLS1.0 版协议
  • 笔试-计算网络信号
  • 一流的网站建设做ui必要的网站
  • 摄像头拍摄照片
  • UVa 1620 Lazy Susan
  • 中国工程建筑门户网站官网房产网签
  • RabbitMQ事务机制详解
  • 网站开发人员的水平wordpress听说对百度不友好
  • 中国网站空间西安营销策划推广公司
  • 【AI工具】dify智能体-Kimi-K2+Mermaid ,一键生成系统架构图
  • 如何利用代理 IP 构建分布式爬虫系统架构?
  • 拿别的公司名字做网站凡科网站怎么修改昨天做的网站
  • Gin 框架中路由的底层实现原理
  • 公司网站开发费进什么费用利用小米路由器mini做网站
  • h5游戏免费下载:飞机炸弹?