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

scanner nextLine() funzt nicht

  • prymus
  • 9. Oktober 2007 um 20:01
  • Unerledigt
  • prymus
    1
    prymus
    Gast
    • 9. Oktober 2007 um 20:01
    • #1

    hi.
    ich bin grad dabei, die erste übungsrunde zu implementieren nur irgendwie funzt der scanner nicht.

    Ich hab einerseits oben:

    Code
    .......
    Scanner read = new Scanner(System.in);
    .......

    und dann der teil der funktioniert:

    Code
    .......
    if (read.next().charAt(0) == 'j') 
                {
                  go = true;
                }
    .......

    und dann

    Code
    .......
    if (go)
                {
                  System.out.println("\n\n\nBitte geben Sie Ihren Namen ein.");
                  player = read.nextLine(); // <-- hier
                  System.out.println("Hallo " + player);
                  System.out.println("Zu welchem Reisebuero moechten Sie gehen?");
                  System.out.println("  - FarAway Turisitk (f)");
                  System.out.println("  - TooNear Reisen (t)");
                  if (read.next().charAt(0) == 'f') agency = "FarAway Turistik";
                      else agency = "TooNear Reisen";
                }
    .......
    Alles anzeigen

    und genau bei //<-- hier überspringt er das read.nextLine(); und macht weiter. und gibt "Hallo " usw aus.

    kann mir jemand helfen?

    lg jakob

  • Flo Felberbauer
    5
    Flo Felberbauer
    Mitglied
    Reaktionen
    1
    Punkte
    201
    Beiträge
    39
    • 9. Oktober 2007 um 20:08
    • #2

    hast du java.util.Scanner inkludiert?

    Java
    import java.util.Scanner;

    ganz am beginn der datei!

    Wer andren eine Bratwurst brät, der hat ein Bratwurstbratgerät!

  • prymus
    1
    prymus
    Gast
    • 9. Oktober 2007 um 20:10
    • #3

    ja hab ich.

    lg

  • MyAcc
    3
    MyAcc
    Mitglied
    Reaktionen
    1
    Punkte
    46
    Beiträge
    9
    • 10. Oktober 2007 um 00:05
    • #4

    Tausche doch einmal read.nextLine() gegen read.next() um. Funktioniert dein Programm jetzt korrekt?
    Ich nehme an, dass read.nextLine() noch das "End of Line"-Zeichen deiner vorigen Eingabe eingelesen hat.

  • prymus
    1
    prymus
    Gast
    • 10. Oktober 2007 um 00:32
    • #5

    japp. das wars. danke.

    kannst du mir jetzt auch noch erklären wieso das so ist und wie ich das in Zukunft verhindern kann?

    danke.

    LG Jakob

  • MyAcc
    3
    MyAcc
    Mitglied
    Reaktionen
    1
    Punkte
    46
    Beiträge
    9
    • 10. Oktober 2007 um 00:49
    • #6

    die metoden nextInt(), nextDouble(), next()... holen sich jeweils den nächsten Token aus der Eingabe und lassen alles, was hinter dem token steht, übrig. nextLine() liest solange ein, bis eben ein "end of line"-zeichen kommt.

    falls du in deinem programm namenseingaben zulassen willst, die aus mehreren wörtern bestehen, kannst du das zum Beispiel so lösen:
    ...
    read.nextLine(); //das "frisst" sozusagen das EOL-Zeichen
    player = read.nextLine();
    ...

  • prymus
    1
    prymus
    Gast
    • 10. Oktober 2007 um 07:47
    • #7

    und wie kann ich dann verhindern, dass er das eol zeichen aus der letzten zeile hernimmt, sowie es bei mir das problem war?

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    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

Rechtliches

Impressum

Datenschutzerklärung