StringBuffer是字符串缓冲区,是一个容器。
1、长度是可变化的;(数组长度不变)
2、可以操作多个数据类型;
3、最终会通过toString方法变成字符串。
1、添加。
StringBuffer append(); //将指定数据作为参数添加到已有数据结尾处
StringBuffer insert(index,数据); //可以将数据插入到指定index位置
2、删除。
StringBuffer delete(start,end); //删除缓冲区中的数据,包含start,不包含end
StringBuffer deleteCharAt(index); //删除指定位置的字符
3、修改。
StringBuffer replace(start,end,string); //用string字符串替换原有字符串中的数据,包含start,不包含end
void setCharAt(int index,char ch); //用ch字符替换指定位置的字符(注意:void没有返回值)
4、获取。
char charAt(int index); //根据角标获取
int indexOf(String str); //根据字符串获取位置
int lastIndexOf(String str); //如果出现字符串参数一次或多次,则返回最后一个这样的字符串的第一个字符的索引返回
int length(); //获取长度
String substring(int start,int end); //获取子字符串,包含start,不包含end(注意:访问的是String,不是StringBuffer)
5、反转。
StringBuffer reverse(); //返回StringBuffer对象的颠倒顺序
6、将缓冲区中指定数据存储到指定数组中。
void getChars(int scrBegin,int scrEnd,char[] dst,int dstBegin); //scrBegin(源开始位),dstBegin(目标开始位)
代码示例:
class StringBufferDemo
{
public static void main(String[] args)
{
method_add();//调用方法method_add()
method_del();
method_update();
}
//添加
public static void method_add()
{
StringBuffer sb=new StringBuffer();//新建StringBuffer对象sb
sb.append("abc").append(true).append(34);//方法调用链
sop(sb.toString());//返回abctrue34
sb.insert(1,"qq");
sop(sb.toString());//返回aqqbctrue34
StringBuffer sb1=sb.append(34);//新建StringBuffer对象sb1,此时sb为aqqbctrue3434
sop(sb1.toString());//返回aqqbctrue3434
sop("sb==sb1"+(sb==sb1));//返回sb==sb1true
}
//删除
public static void method_del()
{
StringBuffer sb=new StringBuffer("abcde");
sb.delete(1,3);
sop(sb.toString());//返回ade
sb.deleteCharAt(2);
sop(sb.toString());//返回abde
sb.delete(0,sb.length());//清空缓冲区
}
//修改
public static void method_update()
{
StringBuffer sb=new StringBuffer("abcde");
sb.replace(1,4,"java");
sop(sb.toString());//返回ajavae
sb.setCharAt(2,'k');
sop(sb.toString());//返回abkde
}
//封装打印功能
public static void sop(String str)
{
System.out.println(str);
}
}