
12-01 Java语言基础(StringBuffer(1))
发布日期:2021-05-06 23:59:36
浏览次数:27
分类:精选文章
本文共 2241 字,大约阅读时间需要 7 分钟。
StringBuffer类
- 通过JDK提供的API,查看StringBuffer类的说明
- StringBuffer是线程安全的可变字符序列
- StringBuffer和String的区别: -String是一个不可变的字符序列 -StringBuffer是一个可变的字符序列
StringBuffer类的构造方法
构造方法:
StringBuffer() 构造一个字符串缓冲区,其中没有字符,初始容量为16个字符StringBuffer(int capacity) 构造一个字符串缓冲区,没有字符,具有指定的容量StringBuffer(CharSequence seq) 构造一个字符串缓冲区,其中包含与指定的seq相同的字符StringBuffer(String str) 构造一个初始化为指定字符串的字符串缓冲区
查看字符串长度、容量:
System.out.println(sb.length());System.out.println(sb.capacity());
代码:
public class Demo1_StringBuffer { public static void main(String[] args) { StringBuffer sb1 = new StringBuffer(); System.out.println(sb1.length()); System.out.println(sb1.capacity()); StringBuffer sb2 = new StringBuffer(10); System.out.println(sb2.length()); System.out.println(sb2.capacity()); StringBuffer sb3 = new StringBuffer("haha"); System.out.println(sb3.length()); System.out.println(sb3.capacity()); }}
输出:
016010420
分析:
1、如果没有指定StringBuffer的容量,默认为16个字符大小2、如果指定了StringBuffer的容量,那就是那个大小3、如果初始化了StringBuffer的字符串,那么容量为字符串长度+16
StringBuffer的添加功能
相关方法:
public StringBuffer append(String str); 其实不光是字符串,可以将任意类型的数据添加到字符串缓冲区中,并返回字符串缓冲区本身。public StringBuffer insert(int offset, String str); 在指定位置把任意数据类型的数据插入到字符串缓冲区中,并返回字符串缓冲区本身
代码:
public class Demo2_StringBuffer { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); StringBuffer sb1 = sb.append(true); StringBuffer sb2 = sb.insert(3, "heima"); StringBuffer sb3 = sb.append(100); System.out.println(sb1.toString()); System.out.println(sb2.toString()); System.out.println(sb3.toString()); }}
输出:
truheimae100truheimae100truheimae100
分析:
1、由于public StringBuffer append()和public StringBuffer insert()方法都是返回StringBuffer本身,所以sb1~3都指向了同一个对象,所以输出结果都是最终的结果。2、需要注意的一点是,insert()方法中的offset的范围是0~length()
StringBuffer的删除功能
相关方法:
public StringBuffer deleteCharAt(int index); 删除指定位置的字符,并返回本身public StringBuffer delete(int start, int end); 删除从指定位置开始,指定位置结束的内容(左开右闭!),并返回本身
代码:
public class Demo3_StringBuffer { public static void main(String[] args) { StringBuffer sb = new StringBuffer("heima"); sb.deleteCharAt(4); System.out.println(sb.toString()); sb.delete(0, 1); //包含头,不包含尾,所以只删除0号字符 System.out.println(sb.toString()); sb.delete(0, sb.length()); //清空缓冲区 }}
输出:
heimeim
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月09日 13时58分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
集合系列 Set(八):TreeSet
2019-03-06
JVM基础系列第11讲:JVM参数之堆栈空间配置
2019-03-06
MySQL用户管理:添加用户、授权、删除用户
2019-03-06
比技术还重要的事
2019-03-06
linux线程调度策略
2019-03-06
软中断和实时性
2019-03-06
Linux探测工具BCC(可观测性)
2019-03-06
Opentelemetry Metrics SDK
2019-03-06
流量控制--2.传统的流量控制元素
2019-03-06
SNMP介绍及使用,超有用,建议收藏!
2019-03-06
SDUT2161:Simple Game(NIM博弈+巴什博弈)
2019-03-06
51nod 1596 搬货物(二进制处理)
2019-03-06
来自星星的祝福(容斥+排列组合)
2019-03-06
Hmz 的女装(递推)
2019-03-06
HDU5589:Tree(莫队+01字典树)
2019-03-06
不停机替换线上代码? 你没听错,Arthas它能做到
2019-03-06
sharding-jdbc 分库分表的 4种分片策略,还蛮简单的
2019-03-06
分库分表的 9种分布式主键ID 生成方案,挺全乎的
2019-03-06
MySQL不会丢失数据的秘密,就藏在它的 7种日志里
2019-03-06