如何将Java StringBuffer实例转换为一个字符串

121 阅读1分钟

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!
}

你不能在StringBufferString 实例之间使用+ 操作符来串联它们,如下所示:

sb = sb + str;

+ 操作符只对String 实例和值起作用,所以你仍然可以在StringBuffer 构造函数调用里面串联它们:

StringBuffer sb = new StringBuffer("Computer says: " + str);

上面的代码对于创建一个新的StringBuffer 实例是很好的: