StringBuffer是提供了大量的字符串功能的字符串(String)类的对等类
1、StringBuffer构造函数
- StringBuffer( )
- StringBuffer(int size)
- StringBuffer(String str)
2、length() 和capacity()
- 通过调用length() 方法可以得到当前StringBuffer的长度
- 而通过调用capacity()方法可以得到总的分配容量
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- System.out.println("buffer:\t" + buffer);
- System.out.println("length:\t" + buffer.length());
- System.out.println("capacity:\t" + buffer.capacity());
- }
- // 输出结果
- // ↓↓↓
- // buffer: HelloStringBuffer
- // length: 5
- // capacity: 21
由于StringBuffer 在创建时由字符串“Hello”初始化,因此它的长度为5。因为给16个附加的字符自动增加了存储空间,因此它的存储容量为21。 |
3、ensureCapacity()
如果想在构造StringBuffer之后为某些字符预分配空间,可以使用ensureCapacity( )方法设置缓冲区的大小。这在事先已知要在StringBuffer上追加大量小字符串的情况下是有用的
- //这里capacity指定了缓冲区的大小。
- void ensureCapacity(int capacity)
4、setLength()
使用setLength() 方法在StringBuffer对象内设置缓冲区的大小
- void setLength(int len)
这里len指定了缓冲区的长度。这个值必须是非负的。
5、charAt()和setCharAt()
使用charAt( ) 方法可以从StringBuffer中得到单个字符的值。可以通过setCharAt( ) 方法给StringBuffer中的字符置值
- char charAt(int where)
- void setCharAt(int where, char ch)
接下来写个例子:
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- System.out.println("获取第2个字符" + buffer.charAt(1));
- buffer.setCharAt(1, 'b');
- System.out.println("将第二个字符替换为b之后 "+buffer);
- }
- // 输出结果
- // ↓↓↓
- // 获取第2个字符e
- // 将第二个字符替换为b之后 Hbllo
6、getChars()
使用getChars( )方法将StringBuffer的子字符串复制给数组
- void getChars(int sourceStart, int sourceEnd, char target[ ], int targetStart)
7、append()
append( ) 方法将任一其他类型数据的字符串形式连接到调用StringBuffer对象的后面。对所有内置的类型和Object,它都有重载形式
- StringBuffer append(String str)
- StringBuffer append(int num)
- StringBuffer append(Object obj)
8、 insert()
insert( )方法将一个字符串插入另一个字符串中
- StringBuffer insert(int index, String str)
- StringBuffer insert(int index, char ch)
- StringBuffer insert(int index, Object obj)
例子:
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- // 在第2个字符前加上字符 n
- buffer.insert(1, 'n');
- System.out.println(buffer);
- }
- // 输出结果
- // ↓↓↓
- // Hnello
9、reverse()
可以使用reverse( ) 方法将StringBuffer对象内的字符串翻转
- StringBuffer reverse( )
例子:
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- System.out.println(buffer.reverse());
- }
- // 输出结果
- // ↓↓↓
- // olleH
10、delete()和deleteCharAt()
- StringBuffer delete(int startIndex, int endIndex)
- StringBuffer deleteCharAt(int loc)
delete( )方法从调用对象中删除一串字符,要删除的子字符串从startIndex 到endIndex–1
deleteCharAt( )方法删除由loc指定下标处的字符
例子:
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- System.out.println(buffer.delete(0, 2));
- buffer = new StringBuffer("Hello");
- System.out.println(buffer.deleteCharAt(0));
- }
- // 输出结果
- // ↓↓↓
- // llo
- // ello
11、replace( )
在StringBuffer内部用一组字符代替另一组字符
- StringBuffer replace(int startIndex, int endIndex, String str)
- //被替换的子字符串由下标startIndex 和endIndex 指定。因此从startIndex 到endIndex-1 的子字符串被替换。
Demo:
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- System.out.println(buffer.replace(0, 2, "abc"));
- }
- // 输出结果
- // ↓↓↓
- // abcllo
12、substring()
返回StringBuffer的一部分值
- String substring(int startIndex)
- String substring(int startIndex, int endIndex)
- //第一种形式返回调用StringBuffer对象中从startIndex 下标开始直至结束的一个子字符串。
- //第二种形式返回从startIndex 开始到endIndex–1 结束的子字符串。
- public static void main(String[] args) {
- StringBuffer buffer = new StringBuffer("Hello");
- System.out.println(buffer.substring(2));
- System.out.println(buffer.substring(1, 2));
- }
- // 输出结果
- // ↓↓↓
- // llo
- // e
转载于:https://blog.51cto.com/gejw0623/1118147