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

来源:互联网 发布:淘宝开店要押金吗 编辑:程序博客网 时间:2024/05/01 01:01
---------------------- 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
原创粉丝点击