1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

scanner nextLine() funzt nicht

  • prymus
  • 9. Oktober 2007 um 20:01
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • 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
    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!

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

    ja hab ich.

    lg

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

  1. Datenschutzerklärung
  2. Impressum