——- android培训、java培训、期待与您交流! ———-
一、StringBuffer
是个字符串缓冲区对象,用于存储数据的容器
特点:1.长度是可变的
2.可以存储不同类型数据
3.最终要转换成字符串使用(toString方法)
4.可以对字符串进行修改
功能
1、存储
(1)StringBuffer append();将指定的数据作为参数添加到已有数据结尾处。
示例:
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append(34);
sop(sb.toString());
sop(sb1.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
打印结果如下:
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append(34);
sop("sb==sb1:"+(sb==sb1));
sop(sb.toString());
sop(sb1.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer();
sb.append("abc").append(true).append(34);//方法调用链
sop(sb.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
(2)insert(位置(offset),字符串) 将数据插入到指定位置
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer();
sb.append("abc").append(true).append(34);//方法调用链
sb.insert(1, "qq");
sop(sb.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
打印结果为:
2、删除
StringBuffer delete(start,end) 删除缓冲区中的数据,包含start不包含end
StringBuffer deleteCharAt(ine index)删除指定位置元素 StringBuffer.delete(0,sb.length());
示例:
public static void main(String [] args)
{
method_del();
}
public static void method_del()
{
StringBuffer sb = new StringBuffer("abcde");
sb.delete(1,3);
sop(sb.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
`打印结果为:
3、获取
char charAt(index); int indexof(string) int lastindexof(String);
Int length()
String substring(int start,int end)
4、修改
(1)StringBuffer replace(start,end,String)
示例:
public static void main(String [] args)
{
method_update();
}
public static void method_update()
{
StringBuffer sb = new StringBuffer("abcde");
sb.replace(1, 4, "java");
sop(sb.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
`打印结果为:
(2) void setCharAt(index,char)
public static void main(String [] args)
{
method_update();
}
public static void method_update()
{
StringBuffer sb = new StringBuffer("abcde");
sb.setCharAt(1, 'k');
sop(sb.toString());
}
public static void sop(String str)
{
System.out.println(str);
}
打印结果为:
(3) setlength()设置长度
5.反转 StringBuffer reverse();
6.将缓冲区中的指定数据存储到指定字符数组中 void getChars(int srcBegin,int srcEnd,char[] dst,int dstbegin)
示例:
public static void main(String[] args)
{
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 sop(String str)
{
System.out.println(str);
}
打印结果为:
二、StringBuilder
JDK1.5版本之后出现了 StringBuilder
StringBuilder 线程不同步的
StringBuffer是同步的。多线程建议使用。
建议使用StringBuilder效率快。
JAVA 升级 :提高效率 简化书写 提高安全性