这是我程序中的一段代码。如果我直接分配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();
答案 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
对象构造函数。