Java 方法为toString()的新类
这与我先前提出的一个问题有关。我正在向类添加一个toString()方法。该类使用整数堆栈创建任意长的自然数。我只是在递增和递减,所以堆栈似乎是一个很好的方法。无论如何,我没有从以下代码中获得任何输出:Java 方法为toString()的新类,java,class,tostring,println,Java,Class,Tostring,Println,这与我先前提出的一个问题有关。我正在向类添加一个toString()方法。该类使用整数堆栈创建任意长的自然数。我只是在递增和递减,所以堆栈似乎是一个很好的方法。无论如何,我没有从以下代码中获得任何输出: public String toString() { String out_final = "", backwards = "", temp_str = ""; Integer temp_int = 0; Character temp_char = ' '; w
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())调用代码>
对象编号
引用我的堆栈
我必须从堆栈的末尾(显然是反向的)取下,然后再次反向以正确打印。无论如何,这件事不要着急,但我们总是很感激你的帮助 字符串是不可变的:
backwards.concat(temp_str);
应该是
backwards = backwards.concat(temp_str);
out_最终连接也是如此
或者,如果您的堆栈相当大,则使用StringBuilder可能会很有用,而且可能会更高效。StringBuilder是推荐的选项。StringBuffer要么已弃用,要么不鼓励使用它(我认为已弃用)。您让我走上了正确的道路,因为我现在至少以正确的格式获得了输出。非常感谢:)StringBuffer未被弃用,但与同步相关的开销较大。StringBuilder在大多数情况下都更快、更适合,但不是线程安全的。您可能希望将整数更改为int,将字符更改为char,因为它们都更快、内存效率更高。如果我不是java noob,我会这样做。它现在正在工作,天知道如果我改变一些简单的事情,它会爆炸。和往常一样,我喜欢反馈!