前言
StringBuffer作为可变字符串,和String相似维护了多个数组,但是StringBuffer又比固定不变的String胜上一筹的是它的长度取决你每次操作StringBuffer的空间。初始情况下,StringBuffer会有一个初始化的长度,但随着你的内容不断追加,它的长度也自然而然的随之改变。
StringBuffer sb=new StringBuffer();
System.out.println(sb.capacity());
//这里不用length方法,因为length在StringBuffer初始长度情况下只为0
那我们现在先了解一下StringBuffer的几个常用的方法!
System.out.println("sb的长度是"+sb.length());
System.out.println("sb的总空间是"+sb.capacity());
System.out.println("在字符串后面追加内容JavaObject:"+sb.append("JavaObject"));
System.out.println("删除Java:"+sb.delete(10, 14));//左包含,又不包含
System.out.println("追加Java在HellowWorld后面:"+sb.insert(10, "Java"));//不包含
System.out.println("反转:"+sb.reverse());
我用ArrayList实现了StringBuffer的反转、追加、删除、索引方法,直接放源码。
public class T1 {
public ArrayList list=new ArrayList();
public T1(String s){
char [] c=new char[s.length()];
c=s.toCharArray();
for(int i=0;i<s.length();i++){
list.add(c[i]);
}}
public String toString(){
String str=list.toString();
str=str.replace("[","");
str=str.replace("]","");
str=str.replace(",","");
str=str.replace(" ","");
return str;
}
/**
* 对自定义字符串进行追加
* @param str
* @return
*/
public String add(String str){
list.add(str);
String str1=list.toString();
str1=str.replace("[","");
str1=str1.replace("]","");
str1=str1.replace(",","");
str1=str1.replace(" ","");
return str1;
}
/*
* 删除特定下标长度中的内容
* 用了ArrayList的删除方法
*
*/
public void delete(int star,int end){
for(int i=star;i<end;i++)
{
list.remove(star);
}}
/*
* 查找特定下标的内容
*/
public void chazhao(int star,int end){
for(int i=star;i<end;i++)
{
list.remove(star);
}
}
public static void main(String[] args) {
T1 t=new T1("Hello World");
t.delete(0, 2);
System.out.println(t);
}
}
在实现的时候,可以发现频繁出现了去[ ]和,还有空格的方法,这是String的方法,由于将ArrayList转成字符串的时候输出就会发现是一个数组的格式。