String它的对象表示的是一个常量,它的值创建后不能改变。
StringBuffer是一个字符串缓冲区,它的底层是一个数组,
它可以将所有的字符串都保存到这个数组中。
StringBuffer的构造方法
1. StringBuffer();
构造一个默认长度为16个字符的字符串缓冲区
StringBuffer buff=new StringBuffer(); //相当于在底层默认创建了一个char[] ch=new char[16];
2. StringBuffer(int len)
构造一个指定长度的字符串缓冲区
StringBuffer buff=new StringBuffer(5);//在底层创建一个char[] ch=new char[5];
3. StringBuffer(String s);
构造一个具有指定内容的StringBuffer
StringBuffer buff=new StringBuffer("abc");//在底层创建一个char[] ch={'a','b','c'};
成员方法
1.append方法(重点)
声明:public StringBuffer append(参数 c)
参数类型可以是:1.基本类型 2.char[] 3.Object 4.String或StringBuffer
返回值是StringBuffer
作用:向StringBuffer上添加内容
对于字符串连接时我们建议使用append方法,而不要使用+操作。
//append方法
public static void method1(){
StringBuffer buff=new StringBuffer();
buff.append("abc").append(123).append(true).append(new Object()).append(new char[]{'x','y','z'});
System.out.println(buff); //StringBuffer重写了toString方法
}
在实际开发中append方法什么时候应用的比较多?
1.toString方法
2.在ajax开发,经常会从服务器向客户端返回一个字符串信息,这个字符串是
一些相关信息的组合,那么在组合这些信息时会使用到append方法.
2.insert方法
声明:public StringBuffer insert(int offset,参数 c)
将c插入到offset这个位置
作用:是将指定的数据插入到指定的位置
//insert演示
public static void method3(){
StringBuffer buff=new StringBuffer("abc");
buff.insert(1,"xyz");
System.out.println(buff);
}
3.delete
1.声明 public StringBuffer delete(int start,int end)
作用 删除StringBuffer中从start开始到end结束的字符,不包含end
//delete(int start,int end)
public static void method1(){
StringBuilder buff=new StringBuilder("abcdef");
buff.delete(1,3);
System.out.println(buff);
}//adef (删前不删后)
2.声明 public StringBuffer deleteCharAt(int index);
作用 删除StringBuffer中index位置上的字符.
//deleteCharAt(int index)
public static void method2(){
StringBuffer buff=new StringBuffer("abcdef");
buff.deleteCharAt(1);
System.out.println(buff);
}// acdef
4.reverse
声明 public StringBuffer reverse();
作用 将StringBuffer反转
//reverse
public static void method3(){
StringBuffer buff=new StringBuffer("abcdef");
StringBuffer rb=buff.reverse();
System.out.println(rb);
}//fedcba
5.其它方法
setCharAt 方法
声明 public void setCharAt(int index,char c);
作用 使用c替换index位置上的字符
//setCharAt
public static void method4(){
StringBuffer buff=new StringBuffer("abcdef");
buff.setCharAt(0,'k');
System.out.println(buff);
}//kbcdef
trimToSize();
当我们使用StringBuffer进行操作时,底层数组会越来越大,
这个方法可以将数组中没有使用的空间清理掉,它可以提高空间的利用率;
String类中提供的大部分方法我们在StringBuffer中也可以找到。
StringBuffer与StringBuilder功能相似,StringBuffer中提供的方法在StringBuilder中也有。
StringBuffer是线程的安全的(同步),它的效率比较低.
StringBuilder是线程不安全(异步),它的效率比较高
String与StringBuffer转换
String----->StringBuffer
new StringBuffer(String s);
StringBuffer--->String
toString()
new String(StringBuffer buff);
-------
android培训、java培训、期待与您交流! ----------