这与我问过的早期问题有关。我正在向类中添加toString()方法。该类使用整数堆栈创建任意长的自然数。我只是递增和递减,所以堆栈似乎是一个很好的方法。无论如何,我没有从以下代码获得任何输出:
public String toString() {
String out_final = "", backwards = "", temp_str = "";
Integer temp_int = 0;
Character temp_char = ' ';
while(!number.empty()) {
temp_int = number.pop();
temp_str = temp_int.toString();
backwards.concat(temp_str);
}
while(backwards.length() > 0) {
temp_char = backwards.charAt(backwards.length() - 1);
temp_str = temp_char.toString();
out_final.concat(temp_str);
}
return out_final;
}
由System.out.println(b4.toString());
调用
对象number
指的是我的Stack<Integer>
我必须从堆栈的末端(显然是反向)取出然后再将其反转以正确打印。无论如何,不要急于这个,但总是感谢帮助!
答案 0 :(得分:7)
字符串是不可变的:
backwards.concat(temp_str);
应该是
backwards = backwards.concat(temp_str);
与out_final连接相同。
或者,如果您的堆栈相当大,StringBuilder可能会有用,可能对您更有效。