(60)StringBuffer:特点、存储、删除、获取、修改
来源:互联网 发布:php html转markdown 编辑:程序博客网 时间:2024/06/08 11:57
StringBuffer是字符串缓冲区,是一个容器。
StringBuffer的特点:
1:长度是可变化的(数组也是容器,但长度固定)
2:可以操作多个数据类型(数组只能一种数据类型)
3:最终通过toString方法编程字符串
C:create U:update R: read D:delete (CURD)
JDK1.5版本之后出现了StringBuilder
StringBuffer是线程同步
StringBuilder是线程不同步
在单线程开发中使用StringBulider,因为StringBuffer同步必含锁的判断,效率较低
在多线程中建议使用StringBuffer
Java升级的三个因素:
1:提高效率
2:简化书写
3:提高安全性
一.存储
①添加: public StringBuffer append():将指定的数据作为参数添加到已有数据的结尾处
参数为基本数据类型,其中参数没有byte,short 但是也可以传入此类的值,因为有int自动类型提升
注意它和String区别:
String是一旦初始化,这个对象就不变了,在方法调用中返回一个新的对象,设置一个变量来接收这个新的变量。
StringBuffer是个容器,它返回的还是容器,是这个对象
public static void main(String[] args) { StringBuffer sb=new StringBuffer(); StringBuffer sb1=sb.append(34); sop("sb==sb1?"+(sb==sb1));//true(说明指向都是这个容器)既然指向相同,并没有像String创建一个新的对象,仍然是原来的对象,所以不用创建一个新对象来接收。操作的都是同一个对象 sb.append("abc").append(true).append(34);
②插入
StringBuffer insert(index,任意类型)
//插入:在a后面插入kk sb.insert(1, "kk"); sop(sb.toString()); //在不存在的角标处插入:抛出异常IndexOutOfBoundsException sb.insert(100, "kk"); sop(sb.toString());
二.删除
StringBuffer delete(int start,end):包含头,不包含尾
StringBuffer deleteCharAt(index):删除特定位置上的字符
public static void method_delete() { StringBuffer sb=new StringBuffer("abcdefg"); //删除一段 sb.delete(2, 5); sop(sb.toString());//abfg //删除特定位置上的字符 sb.deleteCharAt(2); sop(sb.toString());//abg //清空缓冲区 sb.delete(0, sb.length()); sop("哈哈"+sb.toString()+"哈哈"); }
三.获取
public char charAt(int index):获取特定位置的字符
public int indexOf(String str):此方法相当于this.toString().startsWith(str, k)
若str在容器中存在,则返回开始下标;若不存在,返回-1
public int length()
public String substring(int start, int end)
public static void method_get() { StringBuffer sb=new StringBuffer("abcdefghijk"); //获取特定位置的字符 char ch=sb.charAt(2); sop(ch); //获取特定字符串开始的位置 int i=sb.indexOf("ef"); sop(i); //获取子字符串 String s=sb.substring(2, 6);//substring返回字符串,所以输出不用toString sop(s); }
四.修改
①替换一段:public StringBuffer replace(int start, int end, String str)注意:start、end和str长度没有关系。
②替换某个字符:public void setCharAt(int index, char ch):注意返回值为void
③反转:public StringBuffer reverse():反转
④将容器中指定数据存入指定字符数组中:public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
参数:
srcBegin - start copying at this offset. (src:是source的简写 “源”)
srcEnd - stop copying at this offset.【end-1】
dst - the array to copy the data into.
dstBegin - offset into dst. 【des:destination”目的”】
public static void method_replace() { StringBuffer sb=new StringBuffer("helloworld"); sb.replace(5, 10, "java");//不包含尾 sop(sb.toString()); sb.setCharAt(3, 'y');+ sop(sb.toString()); //反转 sb.reverse(); sop(sb.toString()); //将容器中某段数据复制到字符数组中 String s1=new String("abcdefg"); char[] ch= {'h','i','j','k','l'}; s1.getChars(2, 6, ch, 1); String s2=new String(ch);//将字符数组转化为字符串,就不用for循环输出了 sop(s2) }
- (60)StringBuffer:特点、存储、删除、获取、修改
- JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder
- StringBuffer(添加-删除-修改-查找)
- StringBuffer-常见功能-添加-删除-修改
- 修改、删除、重命名存储过程
- java基础-StringBuffer(常见功能—添加、删除和修改)
- java基础-StringBuffer(常见功能—添加、删除和修改)
- 获取、创建、修改、删除注册表
- 获取assets目录文件解析数据存储数据库 Listview展示 Dialog删除修改从数据库获取数据
- iphone ios 文件系统操作(创建、删除,修改,获取属性)
- 15-StringBuffer-10-常用对象API(StringBuffer类-插入&删除&查找&修改)
- sql生成(插入、修改、删除数据的存储过程)代码的存储过程
- 插入 修改 删除 查询 存储过程
- sharedpreferences存储、获取、删除用户名密码
- 存储、获取、删除文件的demo
- 获取、增加、修改、删除sqlserver字段描述
- 获取、增加、修改、删除sqlserver字段描述
- 获取、增加、修改、删除sqlserver字段描述
- tftp transfer timed out
- 软件开发流程
- Tensorflow在Anaconda环境下安装以及一些问题【转】
- Struts2.x开发步骤
- 面试问题:进程与线程的区别和联系
- (60)StringBuffer:特点、存储、删除、获取、修改
- Qt中的JSON支持
- day01之合并两个有序链表+实现1+2+3...+n要求不能使用乘除法循环条件判断等
- redis的持久化
- session技术
- centos中/etc/issue的字符格式
- Unity简单的声音切换渐变实现
- Spark2.X源码学习--从SparkContext创建分析AppClient注册
- 【哈希表】关于map