0

这与我之前提出的一个问题有关。我正在向一个类添加一个 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> 必须从堆栈的末尾获取(显然是反向的),然后再次反转它以正确打印。无论如何,不​​要急于这个,但总是感谢帮助!

4

1 回答 1

7

字符串是不可变的:


backwards.concat(temp_str);

应该


backwards = backwards.concat(temp_str);

与 out_final 连接相同。

或者,如果您的堆栈相当大,则StringBuilder可能对您有用并且可能更有效。

于 2011-01-14T04:12:24.603 回答