/*
StringBuffer 是字符串缓冲区
是一个容器
特点:
1,长度是可以变化的
2,可以直接操作多种数据类型
3,最终会通过toString方法变成字符串
C creat U updata r read D delete
1,存储
StringBuffer append():将指定数据作为参数添加到已有数据结尾处
StringBuffer insert(offset ,数据);可以将数据插入到指定位置
2,删除
StringBuffer delete(start ,end );删除缓冲区中的数据,包含start,不包含end
StringBuffer deleteCharAt(index),删除指定位置的字符
3,获取
char charAt(int index);
int indexOf(String str);
int lastIndexOf(String str);
int length();
String substring(int start,int end);
4,修改(替换)
StringBuffer replace(start,end,str);
void setCharAt(int offSet,char ch);
5,翻转
StringBuffer reverse();
6,
将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin,int srcEnd,char []dst,int dstBegin)
JDK1.5 版本之后出现了StringBuilder
StringBuffer 是线程同步
StringBuilder 是线程不同步
以后开发,建议使用StringBuffer
使用方法和StringBuffer 一样
升级三个因素
1,提高效率
2,简化书写
3,提高安全性
*/
class StringBufferDemo
{
public static void main(String []args)
{
//method_add();
//method_del();
//method_update();
StringBuffer sb = new StringBuffer("abcdef");
char [] chs = new char[4];
sb.getChars(1,4,chs,1);
for(int x = 0 ; x<chs.length; x++)
{
sop("chs["+x+"]"+ chs[x]+ " ");
}
}
public static void method_update()
{
StringBuffer sb = new StringBuffer("abcdef");
//StringBuilder sb = new StringBuilder("abcdef");
sb.replace(1,4,"java");
sb.setCharAt(2,'K');
sop(sb);
}
public static void method_del()
{
StringBuffer sb = new StringBuffer("abcdef");
sb.delete(1,4);
//清空内存缓冲区
//sb = new StringBuffer();也可以清空 不过浪费了空间
//sb.delete(0,sb.length());
sb.deleteCharAt(2);
sop(sb.toString());
}
public static void method_add()
{
StringBuffer sb1 = new StringBuffer();
sb1.append("abc").append(true).append(90);
sop(sb1);
sb1.insert(1,"qq");
sop(sb1.toString());
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}