• Hallo
    ich habe ein problem mit einem stack.
    dies ist mein code:

    Code
    myStack.push(ch);


    ch ist ein character.
    nun bekomme ich die fehlermeldung:
    cannot resolve symbol
    [javac] symbol : variable theStack
    [javac] location: class convertToPostfix
    [javac] myStack.push(ch); // push it
    [javac] ^

    ich verstehe das nicht, weil ich in verschiedenen büchern nachgeschlagen habe, und da tut man immer die elemente so in ein stack.
    vielen dank schon für die hilfe.
    jen

  • Ehhhh, siehe unteres Posting

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • Deiner Fehlermeldung nach findet er den Stack nicht... Heisst der auch wirklich so?

    Und ist dein Character eh ein Character-Objekt und kein char, oder?

    Sowas funktioniert einwandfrei:

    Code
    char c = 'a';
            java.util.Stack s = new java.util.Stack();
            s.push(new Character(c));
            System.out.println(s.pop());

    mfg,
    AntiBit

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

  • Code
    char opTop = myStack.pop();


    Komisch, jetzt funktioniert das hier nicht. jetzt sin doch characters im stack, oder muss man das objekt wieder in ein char umwandeln? wie macht man das denn?

    Hier die fehlermeldung:
    incompatible types
    [javac] found : java.lang.Object
    [javac] required: char
    [javac] char opTop = myStack.pop();
    [javac] ^

  • Zitat von jenny_psion

    incompatible types
    [javac] found : java.lang.Object
    [javac] required: char
    [javac] char opTop = myStack.pop();
    [javac] ^


    Javas Stacks (und Vectors und das ganze sonstige Collection-Zeug) geben immer ein java.lang.Object zurück. Das mußt du dann immer auf den Typ casten, den du gern hättest. Hier halt (char). (Das steht aber alles in der Fehlermeldung.)

    *plantsch*

  • Code
    char c = 'c';
    
            java.util.Stack stack = new java.util.Stack();
            stack.push(new Character(c));
    
            char c2 = ((Character)stack.pop()).charValue();


    und mit Java >= 1.5 gehts auch so:

    Code
    char c = 'c';
    
            java.util.Stack<Character> stack = new java.util.Stack<Character>();
            stack.push(c);
    
            char c2 = stack.pop();

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!