黑马程序员------------------String和StringBuffer

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
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.StringStringBuffer

返回值是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);

作用  删除StringBufferindex位置上的字符.

//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中也可以找到。

 

StringBufferStringBuilder功能相似,StringBuffer中提供的方法在StringBuilder中也有。
StringBuffer是线程的安全的(同步),它的效率比较低.
StringBuilder是线程不安全(异步),它的效率比较高
 

StringStringBuffer转换

String----->StringBuffer

new StringBuffer(String s);

StringBuffer--->String

toString()

new String(StringBuffer buff);

--------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!---------------详细请查看: http://edu.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值