Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 其他

Java API 和框架

Java 类参考

Java 有用资源

StringBuffer 和 StringBuilder 类



当需要对字符串进行大量修改时,可以使用StringBufferStringBuilder 类。

与字符串不同,StringBuffer 和 StringBuilder 对象可以反复修改,而不会留下许多未使用的对象。

StringBuilder 类是在 Java 5 中引入的,StringBuffer 和 StringBuilder 之间的主要区别在于 StringBuilder 的方法不是线程安全的(未同步)。

建议尽可能使用StringBuilder,因为它比 StringBuffer 快。但是,如果需要线程安全,最好的选择是 StringBuffer 对象。

示例

public class Test {

   public static void main(String args[]) {
      StringBuffer sBuffer = new StringBuffer("test");
      sBuffer.append(" String Buffer");
      System.out.println(sBuffer);  
   }
}

这将产生以下结果:

输出

test String Buffer

StringBuffer 方法

以下是 StringBuffer 类支持的重要方法列表:

序号 方法和描述
1 public StringBuffer append(String s)

更新调用该方法的对象的值。该方法接受布尔值、字符、整数、长整数、字符串等。

2 public StringBuffer reverse()

此方法反转调用该方法的 StringBuffer 对象的值。

3 public delete(int start, int end)

删除从起始索引到结束索引的字符串。

4 public insert(int offset, int i)

此方法在由偏移量指定的位置插入字符串s

5 replace(int start, int end, String str)

此方法将此 StringBuffer 的子字符串中的字符替换为指定字符串中的字符。

以下是其他方法(除 set 方法外),它们与 String 类非常相似:

序号 方法和描述
1

int capacity()

返回字符串缓冲区的当前容量。

2

char charAt(int index)

返回字符串缓冲区当前表示的序列中由索引参数指示的指定字符。

3

void ensureCapacity(int minimumCapacity)

确保缓冲区的容量至少等于指定的最小值。

4

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

将字符从此字符串缓冲区复制到目标字符数组 dst。

5

int indexOf(String str)

返回在此字符串中指定子字符串的第一次出现的索引。

6

int indexOf(String str, int fromIndex)

返回在此字符串中指定子字符串的第一次出现的索引,从指定的索引开始。

7

int lastIndexOf(String str)

返回在此字符串中指定子字符串的最右边出现的索引。

8

int lastIndexOf(String str, int fromIndex)

返回在此字符串中指定子字符串的最后一次出现的索引。

9

int length()

返回此字符串缓冲区的长度(字符数)。

10

void setCharAt(int index, char ch)

将此字符串缓冲区中指定索引处的字符设置为 ch。

11

void setLength(int newLength)

设置此字符串缓冲区的长度。

12

CharSequence subSequence(int start, int end)

返回一个新的字符序列,它是此序列的子序列。

13

String substring(int start)

返回一个新的字符串,其中包含当前包含在此 StringBuffer 中的字符的子序列。子字符串从指定的索引开始,一直延伸到 StringBuffer 的末尾。

14

String substring(int start, int end)

返回一个新的字符串,其中包含当前包含在此 StringBuffer 中的字符的子序列。

15

String toString()

转换为表示此字符串缓冲区中数据的字符串。

java_strings.htm
广告