将字符串变量重新分配给StringBuffer对象

时间:2012-06-14 11:44:10

标签: java arrays string stringbuffer

这是我程序中的一段代码。如果我直接分配sb1= str2我收到错误。所以我正在创建两个StringBuffer对象

是否有可能仅使用一个StringBuffer对象来达到以下要求。

   String str1, str2;
    Scanner scanObj = new Scanner(System.in);
    str1 = scanObj.next();
    StringBuffer sb1 = new StringBuffer(str1);
    sb1.reverse();
    str1 = sb1.toString();
    char[] input1 = str1.toCharArray();
    str2 = scanObj.next();
    StringBuffer sb2 = new StringBuffer(str2);
    sb2.reverse();
    str2 = sb2.toString();
    char[] input2 = str2.toCharArray();

3 个答案:

答案 0 :(得分:1)

使用sb.setLength(0)然后重新添加新字符串。这应保持相同的内存分配。

答案 1 :(得分:0)

你可以写

Scanner scanObj = new Scanner(System.in);
char[] input1 = new StringBuilder(scanObj.next()).reverse().toString().toCharArray();
char[] input2 = new StringBuilder(scanObj.next()).reverse().toString().toCharArray();

您可以使用setLength(0)和append()重用StringBuilder,但它会更复杂。

答案 2 :(得分:0)

您无法将StringBuffer直接分配给String,因为有不同的对象。 这应该可以帮到你:

String yourStr = "some value";
StringBuffer buffer = new String(yourStr);
StringBuffer other = buffer;

您可以将任何String值放入StringBuffer对象构造函数。