StringBuffer类用于可变字符串处理,即实现字符串内容的添加、修改和删除等操作。
1. 创建StringBuffer对象
public StringBuffer()
public StringBuffer(int length)
public StringBuffer(String str)
2. StringBuffer的主要方法
方法 | 功能 |
---|---|
StringBuffer append(Object obj) | 将某个对象的串描述添加到StringBuffer尾部。 |
StringBuffer insert(int position, Object obj) | 将某个对象的串描述插入到StringBuffer中的某个位置。 |
StringBuffer insert(int index, char[] str, int offset,int len) | 将字符数组str中从offset位置开始的len个字符插入到串的index位置。 |
StringBuffer setCharAt(int position, char ch) | 用新字符替换指定位置字符。 |
StringBuffer deleteCharAt(int position) | 删除指定位置的字符。 |
StringBuffer replace(int start, int end, String str) | 将参数指定范围的一个子串用新串替换。 |
String substring(int start, int end) | 获取所指定范围的子串。 |
//1、思考以下代码段对应的运行结果
StringBuffer str1=new StringBuffer();
str1.append("Hello,mary!");
str1.insert(6,30);
System.out.println(str1.toString());
//结果为:Hello,30mary!
public class Test{
public static void main(String argv[]){
StringBuffer x=new StringBuffer("hello");
myMethod(x);
System.out.println("x="+x);
}
static void myMethod(StringBuffer k){
k=k.append(",你好");
System.out.println("k="+k);
}
}
//运行结果
/*
k=hello,你好
x=hello,你好
*/
class E {
public static void main(String[ ] args) {
StringBuffer sb1 = new StringBuffer("hello");
StringBuffer sb2 = new StringBuffer("hello");
if (sb1.equals(sb2)) //注意:StringBuffer 类没有重写equals方法 !
System.out.println("equal");
else
System.out.println("not equal");
}
}
运行结果:not equal
例7-4 将一个字符串反转
public class StringsDemo {
public static void main(String[] args) {
String s = "Dot saw I was Tod";
int len = s.length();
StringBuffer dest = new StringBuffer(len);
for (int i = (len - 1); i >= 0; i--)
dest.append(s.charAt(i));
/*
String des= " ";
for (int i = (len - 1); i >= 0; i--)
des=des+s.charAt(i);
*/
//StringBuffer有reverse()字符串反转函数
System.out.println(dest.toString());
}
}
写程序的运行结果
public class Foo {
public static void main (String [ ] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
System.out.println(a + "," +b);
}
static void operate (StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
}
}
运行结果:AB,B
public class Foo {
public static void main (String [ ] args) {
String a = new String("A");
String b = new String("B");
operate(a,b);
System.out.println(a + "," +b);
}
static void operate (String x, String y) {
x=x+y;
y = x;
}
}
运行结果:A,B