StringBuffer 类有一个内置的名为toString() 的方法,你可以用它将一个StringBuffer 类的实例转换成一个String 类的实例。
该方法不接受任何参数,并返回一个String 实例。
下面是一个在StringBuffer 实例上使用toString() 方法的例子:
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer("Hello World!");
String str = sb.toString();
System.out.println("Variable str type: " + str.getClass().getSimpleName());
// Variable str type: String
System.out.println("Variable str content: " + str);
// Variable str content: Hello World!
}
你也可以通过将String 实例传入StringBuffer 构造函数调用,将String 转换为StringBuffer :
public static void main(String[] args)
{
String str = "Hello World!";
StringBuffer sb = new StringBuffer(str);
System.out.println("Variable sb type: " + sb.getClass().getSimpleName());
// Variable sb type:StringBuffer
System.out.println(sb);
// Hello World!
}
但是如果你的StringBuffer 实例已经有了一些字符,那么你就需要使用StringBuffer.append() 方法:
public StringBuffer append(Object obj)
该方法接受一个Object 参数,然后对该参数应用String.valueOf() 方法。
然后,返回的值将被附加到你的StringBuffer 实例中。
下面是你如何使用append() 方法:
public static void main(String[] args)
{
String str = "Hello World!";
StringBuffer sb = new StringBuffer("Computer says: ");
sb.append(str);
System.out.println("Variable sb type: " + sb.getClass().getSimpleName());
// Variable sb type:StringBuffer
System.out.println(sb);
// Computer says: Hello World!
}
你不能在StringBuffer 和String 实例之间使用+ 操作符来串联它们,如下所示:
sb = sb + str;
+ 操作符只对String 实例和值起作用,所以你仍然可以在StringBuffer 构造函数调用里面串联它们:
StringBuffer sb = new StringBuffer("Computer says: " + str);
上面的代码对于创建一个新的StringBuffer 实例是很好的: