当前位置:编程学习 > JAVA >>

StringBuffer

String是 非可变对象一旦创建之后就不能再被改变,StringBuffer是可变对象则可以在创建之后被改变。String对象是非可变对象;

在实际应用中,经常会遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。

1、构造函数。

StringBuffer() :构造一个没有任何字符的StringBuffer类。
StringBuffer(int length) : :构造一个没有任何字符的StringBuffer类,并且,其长度为length。如果添加的字符超出了字符串缓冲区的长度,Java将自动进行扩充。
StringBuffer(String str) :以str为初始值构造一个StringBuffer类。

2、方法。
Java代码 
static int parseInt(String s) 

表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。

Java代码 
StringBuffer append(boolean b)  
StringBuffer append(char c)  
StringBuffer append(char[] str)  
StringBuffer append(char[] str, int offset, int len)  
StringBuffer append(double d)  
StringBuffer append(float f)  
StringBuffer append(int i)  
StringBuffer append(long l)  
StringBuffer append(Object obj)  
StringBuffer append(String str)  
StringBuffer append(StringBuffer sb)  

以上的方法都是向字符串缓冲区“追加”元素,但是,这个“元素”参数可以是布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串、字符串和StringBuffer类等

int capacity() :返回当前StringBuffer对象(字符串缓冲区)的总空间,而非字符号串的长度。
Java代码 
public static void main(String[] args){ 
    StringBuffer sb = new StringBuffer(4); 
    System.out.println("字符串缓冲区:" + sb.capacity()); 
    sb.append("my name "); 
    System.out.println("字符串缓冲区:" + sb.capacity()); 
    sb.append("is"); 
    System.out.println("字符串缓冲区:" + sb.capacity()); 
    sb.append('\t'); 
    System.out.println("字符串缓冲区:" + sb.capacity()); 
    sb.append("liuwentao"); 
    System.out.println("字符串缓冲区:" + sb.capacity()); 
 
    System.out.println(sb); 

 

char charAt(int index) :在当前StringBuffer对象中取索引号为index的字符。第一个字符的索引为“0”
StringBuffer delete(int start, int end) :删除当前StringBuffer对象中以索引号start开始,到end结束的子串。
StringBuffer deleteCharAt(int index) :删除当前StringBuffer对象中索引号为index的字符。
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :从当前StringBuffer对象的索引号srcBegin开始,到srcEnd结束的子串,赋值到字符数组dst中,并且从dst的索引号dstBegin开始。
Java代码 
public static void main(String[] args){ 
    StringBuffer sb = new StringBuffer("0123456789"); 
    char c = sb.charAt(5); 
    System.out.println("c=" + c); 
 
    sb.delete(3,8); 
    System.out.println(sb); 
 
    sb.deleteCharAt(4); 
    System.out.println(sb); 
 
    sb = new StringBuffer("0123456789"); 
    char[] cs = new char[5] ; 
    sb.getChars(3,5,cs,3); 
    System.out.println(cs); 
    System.out.println(sb); 

 

18. int indexOf(String str) :返回当前StringBuffer对象中,第一个满足str子串的位置。
19. int indexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回第一个满足str子串的位置。
20. StringBuffer insert(int offset, boolean b)
21. StringBuffer insert(int offset, char c)
22. StringBuffer insert(int offset, char[] str)
23. StringBuffer insert(int index, char[] str, int offset, int len)
24. StringBuffer insert(int offset, double d)
25. StringBuffer insert(int offset, float f)
26. StringBuffer insert(int offset, int i)
27. StringBuffer insert(int offset, long l)
28. StringBuffer insert(int offset, Object obj)
29. StringBuffer insert(int offset, String str)

以上的方法都是在当前StringBuffer对象中插入一个元素,在索引号offset处插入相应的值。
Java代码 
public static void main(String[] args){ 
    StringBuffer sb = new StringBuffer("0123456789"); 
    sb.insert(3,true); 
    System.out.println(sb); 

 

30. int lastIndexOf(String str) :返回当前StringBuffer对象中,最后一个满足str子串的位置。
31. int lastIndexOf(String str, int fromIndex) :从当前StringBuffer对象的fromIndex开始查找,返回最后一个满足str子串的位置。
32. int length() :返回当前StringBuffer对象(字符缓冲区)中,字符串的长度。注意:此方法与capacity() 不同。
33. StringBuffer replace(int start, int end, String str) :替换当前StringBuffer对象的字符串。从start开始,到end结束的位置替换成str。
34. StringBuffer reverse() :将字符串翻转。
Java代码 
public static void main(String[] args){ 
    StringBuffer sb = new StringBuffer("0123456789"); 
    sb.reverse(); 
    System.out.println(sb); 

 
35. void setCharAt(int index, char ch) :设置索引号index的字符为ch。
36. void setLength(int newLength) :重新设置字符串缓冲区中字符串的长度,如果newLength小于当前的字符串长度,将截去多余的字符。
Java代码 
public static void main(String[] args) { 
    StringBuffer sb = new StringBuffer("0123456789"); 
    sb.setCharAt(3, 'a'); 
    System.out.println("sb=" + sb); 
    sb.setLength(5); 
    System.out.println("sb=" + sb); 

 

37. String substring(int start) :取当前StringBuffer对象中,从start开始到结尾的子串。
38. String substring(int start, int end) :取当前StringBuffer对象中,从start开始到end的子串。
39. String toString() :将当前StringBuffer对象转换成String对象。

作者“刘文涛”
 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,