1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Frage zu Übung

  • heartbeat
  • 30. Mai 2007 um 14:38
  • Unerledigt
  • heartbeat
    3
    heartbeat
    Mitglied
    Punkte
    80
    Beiträge
    11
    • 30. Mai 2007 um 14:38
    • #1

    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...

  • Chief Justice
    4
    Chief Justice
    Mitglied
    Punkte
    110
    Beiträge
    22
    • 30. Mai 2007 um 15:06
    • #2

    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

  • heartbeat
    3
    heartbeat
    Mitglied
    Punkte
    80
    Beiträge
    11
    • 30. Mai 2007 um 15:17
    • #3

    also der Benutzer müsste doch dann einfach nur Enter drücken, damit die Namen ausgegeben werden, oder?

  • Chief Justice
    4
    Chief Justice
    Mitglied
    Punkte
    110
    Beiträge
    22
    • 30. Mai 2007 um 15:37
    • #4

    Ja, nachdem der User seine Namen eingegeben hat, kann er einfach Enter tipseln und das Programm geht weiter zur Ausgabe der Daten.

    lG

  • heartbeat
    3
    heartbeat
    Mitglied
    Punkte
    80
    Beiträge
    11
    • 30. Mai 2007 um 15:40
    • #5

    ja aber leider funktioniert das nicht

  • Chief Justice
    4
    Chief Justice
    Mitglied
    Punkte
    110
    Beiträge
    22
    • 30. Mai 2007 um 15:48
    • #6

    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

  • heartbeat
    3
    heartbeat
    Mitglied
    Punkte
    80
    Beiträge
    11
    • 30. Mai 2007 um 16:06
    • #7

    irgendwie funktioniert das trotzdem nicht. ich hab kein ahnung wieso

  • Chief Justice
    4
    Chief Justice
    Mitglied
    Punkte
    110
    Beiträge
    22
    • 30. Mai 2007 um 17:37
    • #8

    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:

    Java
    import java.io.*;
    ...
    ...
    ...
    ...
    byte buffer[] = new byte[80];
    String input = "";
    int read;
    do {
        try {
            read = System.in.read(buffer, 0, 80);
            input = new String(buffer, 0, read);
            System.out.println(input);
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    } while(! input.equals("\r\n"));
    
    
    
    System.out.println("Das wars.");
    Alles anzeigen

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

    lG

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung