2011-01-14 3 views
0

Dies ist eine frühere Frage, die ich gestellt habe. Ich füge eine toString() -Methode zu einer Klasse hinzu. Die Klasse erstellt eine beliebig lange natürliche Zahl mit einem Ganzzahlstapel. Ich bin nur inkrementieren und dekrementieren, so Stack schien ein guter Weg zu gehen. Wie auch immer, ich bekomme keine Ausgabe aus dem folgenden Code:neue Klasse mit Methode 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; 
} 

Es wird von System.out.println(b4.toString()); aufgerufen wird das Objekt number bezieht sich auf meine Stack<Integer> I gotta take vom Ende des Stapels haben (natürlich in umgekehrter) und dann wieder umkehren, um korrekt zu drucken. Wie auch immer, keine Eile, aber Hilfe wird immer geschätzt!

+0

Sie könnten Integer in int und Character in char ändern, da sie sowohl schneller als auch speichereffizienter sind. – tanyehzheng

+0

Wenn ich nicht so ein Java-Noob wäre, würde ich. Es funktioniert jetzt, und Gott weiß, wenn ich etwas Einfaches ändere, würde es explodieren. Wie immer, ich liebe das Feedback! – V1rtua1An0ma1y

Antwort

7

Strings sind unveränderlich:


backwards.concat(temp_str); 

sollte


backwards = backwards.concat(temp_str); 

Und das gleiche mit der out_final Verkettung sein.

Alternativ, wenn Ihr Stack ziemlich groß ist, kann ein StringBuilder nützlich und möglicherweise effizienter für Sie sein.

+2

StringBuilder ist die empfohlene Option. StringBuffer ist entweder veraltet oder es wird davon abgeraten (veraltet, denke ich.) – Marcelo

+0

Guter Punkt! -Bearbeitet- – jerluc

+0

Sie haben mich auf dem richtigen Weg, da ich jetzt mindestens im richtigen Format ausgegeben werde. Vielen Dank :) – V1rtua1An0ma1y