StringBuffer是一个容器,且长度可变,
可以直接操作多个数据类型,数组只能操作一种
最终结果为字符串
字符串的原理就是通过该类实现的
-----------------------------------------------
1.添加
两个主要的方法:
StringBuffer append()-->将指定数据作为参数添加到已有数据的结尾处
看main函数中定义了sb,然后定义了sb2 =sb.append(34);
但是,当我打印这两个数据时,它们的值却是相等的!!!,都是34
为什么呢?
按常理说sb里面应该什么都没有啊
这个问题用面盆理论来解释:
sb就是面盆,面盆里面加了面,还是面盆啊,加了水,也还是面盆啊...
---------------------------------------------------------------
sb.append("abc").append(true).append(34);
方法调用链,方法返回的是本类对象,还可以调用这个方法
------------------------------------------------------------
insert()-->append只能在字符串结尾处添加,而insert可以插入
sb.insert(index,数据);

--------------------------------------------------------------------
2.删除
上面append,insert都是添加;下面说删除
StringBuffer delete(start,end)-->删除的内容,包含start,不包含end
StringBuffer deleteCharAt(index)-->删除指定位置的字符
--------------------------------------------------------
初始化StringBuffer,删除1--3(包含1,不包含3)a0 b1 c2 d3 e4
即输出ade

用这个方法清空缓冲区
sb.delete( 0,  sb.length()  );

---------------------------------------------------------
删除指定位置上的某个字符

------------------------------------------------------------
3.获取
上面讲了增、删,下面讲查(获取)
char charAt(int index)
返回此序列中指定索引处的 char 值。
int indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引
int lastIndexOf(String str)
返回最后一次出现的指定子字符串在此字符串中的索引
String substring(int start, int end);
返回一个新的 String,它包含此序列当前所包含的字符子序列。
注:返回的类型是字符串类型的

-----------------------------------------------------------------
4.修改
修改原来字符串的内容
replace(int start, int end, String str)--包含首,不包含尾的原则,str为替换的内容
使用给定的字符替换此序列的子字符串中的字符。

-----------------------------------------------------------------
void setCahrAt(int index, char ch)替换某个位置的字符,
注:没有返回值,替换完就结束了

-------------------------------------------------------------
5.反转 
StringBuffer reverse()
将abcde倒序打印

------------------------------------------------------------
6.getChars(开始,结尾,容器,容器开始存储的位置)
将缓冲区的指定数据,存储到指定数组中

看看,将1-4,即b,c,d存储到char数组(第二个位置开始存)
-----------------------------------------------------------------
StringBuilder
JDK 1.5以后出现的,和StringBuffer几乎一样
StringBuffer是线程同步的;StringBuilder是线程不同步的
如果你是单线程,那就用StringBuilder,这样不用判断锁,提高效率,
如果是多线程,为了保证安全性,就用StringBuffer
以后开发,建议使用StringBuilder
----------------------------------------------------------------------
java升级的3个原因:
1.提高效率
2.简化书写
3.提高安全性

转载于:https://www.cnblogs.com/aisi-liu/p/4227631.html

StringBuffer(字符串缓冲区)相关推荐

  1. 字符串缓冲区StringBuffer类,正则表达式

    StringBuffer类 StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容.它是一个容器,容器中可以装很多字符串. ...

  2. StringBuilder字符串缓冲区

    JDK1.5出现StringBuiler:构造一个其中不带字符的字符串生成器,初始容量为 16 个字符.该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候( ...

  3. ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小解决办法

    1.今天写的存储过程在执行过程中,报如下错误. exec PRO_T_008pro_update_add_delete(17,1,1,1,1,45.0,54.0,45.0,45.0,45.0,54.0 ...

  4. string的飞鸽传书字符串缓冲区

    一个类似于string的飞鸽传书字符串缓冲区,但不能修改.虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容.可将字符串缓冲区安全地用于多个线程.可以在必要时对 ...

  5. 生成awr报告时报ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

    生成awr报告时报错: ERROR: ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小 ORA-06512: 在 "SYS.DBMS_WORKLOAD_REPOSI ...

  6. 也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

    也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 参考文章: (1)也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符 ...

  7. StringBuffer字符串

    public static void main(String[] args) { // TODO (2)字符串扩展 // // (1)字符串的两种创建方式 // // 方式一: // String s ...

  8. java 字符串缓冲区_详解Java中字符串缓冲区StringBuffer类的使用

    StringBuffer 是一个线程安全的可变的字符序列.它继承于AbstractStringBuilder,实现了CharSequence接口. StringBuilder 也是继承于Abstrac ...

  9. 字符串缓冲区太小怎么解决_epoll的两种模式 ET和LT printf的缓冲区问题 边缘非阻塞模式...

    学习于:https://www.bilibili.com/video/av44660437/?p=9 前文:何柄融:多路复用I/O select poll epoll 何柄融:select poll ...

最新文章

  1. 计算点、线、面等元素之间的交点、交线、封闭区域面积和闭合集(续1)
  2. 设计模式笔记——Adapter
  3. Elasticsearch创建索引和映射结构详解
  4. sudo gedit出现No protocol specified
  5. AFN框架和SDWebImage框架的上手体验
  6. 前端学习(685):循环的目的
  7. 批发电脑配件_2019年10月电脑配件表
  8. linux内核那些事之VMA常用操作
  9. 深圳python工程师 vue_Laravel 招聘:[深圳] [15K-25K] 明源云招聘 PYTHON [SAAS] [研发基地] | Laravel China 社区...
  10. 菜鸟的学习之路(11) — 堆栈与队列
  11. Linux系统下存在大量的TIME_WAIT状态的TCP连接的解决方法
  12. Snapde电子表格支持的文件格式
  13. android 右侧点击翻页,巧用ViewPager实现驾考宝典做题翻页效果
  14. one 主格 复数 宾格_主格和宾格的区别
  15. 武田收到CHMP肯定意见,推荐ALUNBRIG(R) (brigatinib)用于治疗既往用过克唑替尼的ALK+非小细胞肺癌患者
  16. ubuntu rsync 命令拷贝,显示进度
  17. 如果面试时大家都说真话
  18. Oculus Quest2 游戏应用商店:87VRHOME第二版更新介绍
  19. 【035】中国地震台网–及时了解官方报道地震信息
  20. flash builder_使用Flash Builder进行数据驱动的开发,第二部分

热门文章

  1. Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作
  2. 2012总结--第1篇--技术篇
  3. 21个营销机构网站设计案例
  4. 2.2.2 MySQL基本功能与参数文件管理
  5. docker 私有仓库与Harbor
  6. 微信小程序支付java视频_【原创】微信小程序支付(普通模式,公众号支付同适用)java后台案例...
  7. castle activerecord mysql_Castle ActiveRecord配置中需要注意的地方
  8. 从贝泰妮的全域消费者运营,看Quick Audience如何链接产品服务商生态
  9. 阿里云函数计算 FC再次荣获最受观众喜爱奖
  10. 云上快报 | 阿里云混合云再攀新高