------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
StringBuffer是字符串缓冲区。是一个容器。
特点:
1.而且长度是可变化的。
2.可以直接操作多个数据类型。3.最终会通过toString方法变成字符串
下面通过C create U update R read D delete四个方面分别介绍StringBuffer的常用方法。
1.存储
StringBuffer append();将制定数据添加到已有数据结尾处
StringBuffer insert(index,数据);可以将数据插入到制定index位置
public static void method_add()
{
StringBuffer sb=new StringBuffer();
sb.append("abc").append(true).append(34);
System.out.println(sb.toString());//abctrue34
StringBuffer sb1=sb.append(34);//改变自身并返回本串
System.out.println(sb==sb1);
sb.insert(4,"qq");//在4的位置插入
System.out.println(sb.toString());//abctqqrue3434
System.out.println(sb1.toString());//abctqqrue3434
}
2.删除
StringBuffer delete(start,end);删除缓冲区数据,包含start不包含endStringBUffer deleteCharAt(index);删除制定位置的字符。
public static void method_del()
{
StringBuffer sb=new StringBuffer("abcdef");
// sb.delete(1, 3);
// sb.delete(0,sb.length());//清空缓冲区。
sb.deleteCharAt(2);
System.out.println(sb.toString());
}
3.获取
char charAt(int index);根据角标获取字符int indexOf(String str);根据字符串获取角标
int lastIndexOf(String str);根据字符串倒叙获取角标
int length();获取字符串长度
String subString(int start,int end);根据标start和end获取子串
public static void method_get()
{
StringBuffer sb=new StringBuffer("abcdcba");
System.out.println(sb.charAt(3));
System.out.println(sb.indexOf("b"));
System.out.println(sb.lastIndexOf("b"));
System.out.println(sb.length());
System.out.println(sb.substring(2,5));//包含头不包含尾
}
4.修改
StringBuffer replace(start,end,str);根据标start和end修改原串void setCharAt(int index,char ch);根据角标修改字符
public static void method_update()
{
StringBuffer sb=new StringBuffer("abcde");
// System.out.println(sb.replace(1,4,"java"));
sb.setCharAt(2, 'k');
System.out.println(sb);
}
5.反转
StringBuffer reverse(); 反转自身并返回反转后的字符串。
public static void method_reverse()
{
StringBuffer sb=new StringBuffer("abcde");
System.out.println(sb.reverse());
}
6.将缓冲区中的指定数据存储到制定字符数组中
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin);
关于StringBuilder
JDK1.5 版本之后出现了StringBuilder
StringBuffer是线程同步。
StringBuilder是线程不同步。
该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。
以后开发中,建议优先使用StringBuilder,因为StringBuilder与StringBuffer中方法基本相同,使用StringBuilder要快于StringBuilder。
最后提下升级的三个因素:
1.提高效率。
2.简化书写。
3.提高安全性。