|||
StringBuffer类
StringBuffer是Java中用来实现字符串的另一个类,是一个字符缓冲区,是可变字符序列。通过某些方法调用可以改变字符序列的长度和内容。可将StringBuffer安全地用于多个线程。
StringBuffer上的主要操作是append(添加)和insert(插入),这些方法可以重载,以接受任意类型的字符。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append方法始终将这些字符串加到缓冲区的末端;而insert方法则在指定的点添加字符。
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超过此容量,就无须分配新的内部缓冲数组。如果内部缓冲区溢出,则次容量自动增大。
1创建StringBuffer类的对象--字符串变量
构造函数
(1)public StringBuffer()
此构造函数构造一个其中不带字符的字符串缓冲区,初始容量为16个字符。
(2)public StringBuffer(int capacity)
此构造函数构造一个其中不带字符,但具有指定初始容量的字符串缓冲区。参数capacity是初始容量。如果capacity小于0,就会抛出异常NegativeArraySizeException.
(3)public StringBuffer(String str)
此构造函数构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为16加上字符串参数的长度。参数str为缓冲区的初始内容。
如果str为null,就会抛出异常NullPointerException.
下面,用三个构造函数分别初始化一个字符串:
StringBuffer StrBuffer1 = new StringBuffer();
StringBuffer StrBuffer2 = new StringBuffer(20);
StringBuffer StrBuffer3 = new StringBuffer(“Hello World!”);
2 字符串变量扩充、修改
StringBuffer类有三组用来扩充和修改其包含的字符的方法,分别是:
(1)public StringBuffer append(参数类型 参数);
append 方法将指定的参数转换成字符串,附加在原StringBuffer字符串后面。参数可以是各种数据类型的数据,如 int, double, char, String等。
e.g.StringBuffer StrBuffer1 = new StringBuffer();
StrBuffer1.append(“Hello World!”);
System.out.println(StrBuffer1);
程序运行结果是:
Hello World!
(2)public StringBuffer insert(整数型 索引,参数类型 参数);
此方法在指定的位置掺入由参数转化的字符串,参数Index就是要插入字符串的位置,参数就是要插入的对象,参数类型可以是任何数据类型。
e.g.
StringBuffer StrBuffer1 = new StringBuffer();
StrBuffer1.append(“Hello World!”);
StrBuffer1.insert(6, “Beautiful”);
System.out.println(StrBuffer1);
程序运行结果如下:
Hello Beautiful World!
(3)public void setCharAt(int index, char ch);
此方法可将指定索引的字符用给定的另一个字符来替换,例如:把字符串”coat”转换成字符串”goat”:
StringBuffer StrBuffer1 = new StringBuffer(“coat”);
StrBuffer1.setCharAt(0, ‘g’);
3 StringBuffer对象的其他操作
(1)public int capacity();
此方法返回字符串缓冲区的容量。
(2)public StringBuffer delete(int start, int end);
此方法删除从start索引处开始直到end索引前的字符的字符串。
(3)public StringBuffer deleteCharAt(int index);
此方法删除字符串中指定位置的字符
(4)public StringBuffer reverse()
此方法将字符串倒序排列。
(5)
public int indexOf(String str);
public int indexOf(String str, int fromIndex);
这两个方法返回字符串在字符串中第一次出现的第一个字符的索引。
e.g.
StringBuffer StrBuffer1 = new StringBuffer();
StrBuffer1.append(“Hello World!”);
System.out.println(StrBuffer1.capacity());//返回字符串缓冲区的容量
System.out.println(StrBuffer1.reverse());//把字符串倒序
System.out.println(StrBuffer1.delete(0,7));//删除从0开始直到6的字符串
System.out.println(StrBuffer1.deleteCharAt(0));//删除指定的字符
程序运行结果如下:
16
!dlrow olleH
olleH
lleH
StringBuilder 类
StringBuilder 类的对象是一个可变的字符序列。该类被设计用作StringBuffer的一个简易替换,用在字符缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer要快。
在StringBuilder上的主要操作是appeng和insert方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。append方法始终将这些字符添加到生成器的末端;而insert方法则在指定的点添加字符。
StringBuilder的主要操作方法和StringBudffer的方法相同。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 06:56
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社