15、常用类——StringBuffer、StringBuilder 类

StringBuffer

用字符串拼接时,耗时耗内存
字符串缓冲区类

与 String 转换

从String到StringBuffer:
StringBuffer sb = New StringBuffer(“abcd”);
从StringBuffer到String:
String str = sb.toString();
String str=new String(sb);

构造方法

public StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符

public int capacity()
返回当前容量,容量指可用于最新插入的字符的存储量,超过这一容量就需要再次进行分配
返回:当前容量

public int length()
返回长度(字符数)
指定者:接口 CharSequence 中的 length
返回:此对象表示的当前字符序列的长度

public StringBuffer(int capacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区
参数:capacity - 初始容量

public StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为 16 加上字符串参数的长度
参数:str - 缓冲区的初始内容

成员变量

public StringBuffer append(String str)将指定的字符串追加到此字符序列的最后面
按顺序追加 String 变量中的字符,使此序列增加该变量的长度。如果 str为 null,则追加 4 个字符 “null”
假设此字符序列的长度在执行 append 方法前为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 str 中索引 k-n 处的字符
参数:str - 一个 string
返回:此对象的一个引用

public StringBuffer insert(int offset, String str)将字符串插入此字符序列中
按顺序将 String 参数中的字符插入此序列中的指定位置,将该位置处原来的字符向后移,此序列将增加该参数的长度。如果 str 为 null,则向此序列中追加 4 个字符 “null”
offset 参数必须大于等于 0,且小于等于此序列的长度
参数:offset - 偏移量、str - 一个 string
返回:此对象的一个引用

public StringBuffer deleteCharAt(int index)移除此序列指定位置的 char,此序列将缩短一个 char
注:如果给定索引处的字符是增补字符,则此方法将不会移除整个字符。如果需要准确处理增补字符,那么可以通过调用 Character.charCount(thisSequence.codePointAt(index))(用此序列取代 thisSequence)来确定要移除的 char 的数量
参数:index - 要移除的 char 的索引
返回:此对象

StringBufferpublic StringBuffer delete(int start, int end)移除此序列的子字符串中的字符
该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改
参数:start - 起始索引(包含)、end - 结束索引(不包含)
返回:此对象

public StringBuffer replace(int start,int end,String str)使用给定 String 中的字符替换此序列的子字符串中的字符
该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部
先将子字符串中的字符移除,然后将指定的 String 插入 start。(如果需要,序列将延长以适应指定的字符串)
参数:start - 起始索引(包含)、end - 结束索引(不包含)、str - 将替换原有内容的字符串
返回:此对象

public StringBuffer reverse()将此字符序列用其反转形式取代

public String substring(int start)返回一个新的 String,它包含此字符序列当前所包含的字符子序列
该子字符串始于指定索引处的字符,一直到此字符串末尾
参数:start - 起始索引(包含)
返回:新的字符串

String和StringBuffer的区别

1、String是内容不可变的,StringBuffer是内容可变的
2、作为形参时的改变是否影响实参
String:
的实参不论是字面值字符串赋值还是new对象都不会被影响,都相当于操作的拷贝值(和基本数据类型一样)
StringBuffer:
直接重新赋值,实参不会被修改
改变值的话,实参会被修改

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值