• hey zusammen, kann mir jemand da vielleicht weiterhelfen

    Also ich hab folgendes Programm geschrieben:

    import java.util.*;
    import ea.*;

    /**
    * Erzeugt ein Objekt, welches vom Benutzer eingegebene Namen einliest
    * und in umgekehrter Reihenfolge wieder ausgibt.
    * @author Nadia Tuna
    * @version 1vom 29.05.2007
    */

    public class NamenCollection {

    /**
    * @param args
    */
    public static void main(String[] args) {
    Stack<String> menue = new Stack<String>();

    String name = "null";

    while(!name.equals("")) {
    Ausgabe.schreib("Geben Sie bitte einen Namen ein! \n");
    name = Eingabe.liesString();
    menue.push(name);
    }

    // Solange wie im Stack noch Werte sind
    while (!menue.isEmpty()) {
    try {
    Ausgabe.schreib(menue.pop());
    Ausgabe.neueZeile();
    }
    catch (EmptyStackException e) { e.printStackTrace(); }
    }
    }
    }


    Das Problem ist, der Benutzer soll das Ende der Eingabe der Namen durch die Eingabe des Textes der Länge null signalisieren. Soweit ich weiß müsste das irgendwie hier sein: while(!name.equals("")) {...} . Also in der inneren Klammer müsste etwas rein. Aber was...

  • Hi,

    ich würde einfach do {...}while() Konstrukt verwenden. Hierbei wird erst nach mindestens einem Schleifendurchlauf die Abbruchbediengung überprüft:

    Code
    //ertser Name:
    Ausgabe.schreib("Geben Sie bitte einen Namen ein! \n");
    name = Eingabe.liesString();
    
    
    do {
        menue.push(name);
        Ausgabe.schreib("Geben Sie bitte einen Namen ein! \n");
        name = Eingabe.liesString();
    } while(!name.equals(""));

    Dieser Funktioniert unter der Voraussetzung, dass mindestens ein Name eingegeben wird.

    lG el Chefe

  • Ja, natürlich nicht... sorry...

    Wenn man in Java nur Enter drückt, dann hat der String zwei Zeichen, und zwar die depperten Zeilenumbrüche ("\r\n"). Was eigentlich eh voll logisch ist, denn man hat ja Enter gedrückt... hab voll vergessen, sorry!

    probier mal mit
    ...
    ...
    }while(!name.equals("\r\n"));

    das sollte klappen

  • Hello,

    also wenns bis jetzt noch nicht geht. Ich habe diesen Code ausprobiert, und der hat gemütlich geklappt. Hier wird einfach die Eingabe wieder ausgegeben:

    Also die Namen abspeichern und die Dinger dann umgekehrt ausgeben hab ich nicht ausprobiert. Vielleicht liegt ja dort der Hund begraben...

    lG

Jetzt mitmachen!

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