2011-01-14 18 views
0

これは私が以前に尋ねた質問に関連しています。私はtoString()メソッドをクラスに追加しています。クラスは、整数のスタックを使用して任意に長い自然数を作成します。私はインクリメントとデクリメントしか行っていないので、スタックは良い方法に見えました。オブジェクトnumberが、私は逆に、明らかに(スタックの端から奨めテイクをした私のStack<Integer> を指しSystem.out.println(b4.toString()); によって呼び出されるメソッドの新しいクラス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; 
} 

:とにかく、私は次のコードから任意の出力を得ることはありません)、それをもう一度反転して正しく印刷してください。とにかく、これで急いではなく、助けは常に感謝!

+0

整数をintに、Characterをcharに、もっと速く、より効率的に変更できます。 – tanyehzheng

+0

私がそのようなJavaのnoobでなかったら、私はそうだった。それは今のところ働いているし、神が私が爆発する単純なものを変えるかどうか知っている。しかし、いつものように、私はフィードバックを愛しています! – V1rtua1An0ma1y

答えて

7

文字列は不変です:


backwards.concat(temp_str); 


backwards = backwards.concat(temp_str); 

そしてout_final連結と同じでなければなりません。

また、スタックがかなり大きい場合は、StringBuilderが役に立つかもしれません。

+2

StringBuilderをお勧めします。 StringBufferは推奨されていないか、使用は推奨されません(廃止予定です)。 – Marcelo

+0

良い点! -Edited- – jerluc

+0

私は今、適切なフォーマットで出力されているので、正しい軌道に乗っています。ありがとうございます:) – V1rtua1An0ma1y

関連する問題