Heim > Java > javaLernprogramm > Wie verarbeitet Javas „scanner.nextLine()' Eingaben, insbesondere in Schleifen?

Wie verarbeitet Javas „scanner.nextLine()' Eingaben, insbesondere in Schleifen?

DDD
Freigeben: 2024-12-19 18:07:17
Original
1033 Leute haben es durchsucht

How Does Java's `scanner.nextLine()` Handle Input, Especially in Loops?

Verwendung von scanner.nextLine()

In Java liest die Methode nextLine() aus der Klasse java.util.Scanner eine einzelne Zeile von Text aus einem Stream. Es wird üblicherweise zum Lesen von Eingaben des Benutzers verwendet.

Betrachten Sie die folgenden Beispiele:

Beispiel 1: Lesen einer einzelnen Zeile

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import java.util.Scanner;

 

class Test {

    public void menu() {

        Scanner scanner = new Scanner(System.in);

 

        System.out.print("Enter a sentence:\t");

        String sentence = scanner.nextLine();

 

        System.out.print("Enter an index:\t");

        int index = scanner.nextInt();

 

        System.out.println("\nYour sentence:\t" + sentence);

        System.out.println("Your index:\t" + index);

    }

}

Nach dem Login kopieren

In diesem Beispiel liest die Methode nextLine() die Eingabe des Benutzers für den Satz. Es wartet ordnungsgemäß darauf, dass der Benutzer einen Wert eingibt, bevor es mit dem Lesen des Index fortfährt.

Beispiel 2: Lesen in einer Schleife

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

// Example 2

import java.util.Scanner;

 

class Test {

    public void menu() {

        Scanner scanner = new Scanner(System.in);

 

        while (true) {

            System.out.println("\nMenu Options\n");

            System.out.println("(1) - do this");

            System.out.println("(2) - quit");

 

            System.out.print("Please enter your selection:\t");

            int selection = scanner.nextInt();

 

            if (selection == 1) {

                System.out.print("Enter a sentence:\t");

                String sentence = scanner.nextLine();

 

                System.out.print("Enter an index:\t");

                int index = scanner.nextInt();

 

                System.out.println("\nYour sentence:\t" + sentence);

                System.out.println("Your index:\t" + index);

            }

            else if (selection == 2) {

                break;

            }

            else {

                System.out.print("Invalid input. Please try again: ");

                scanner.nextLine();

            }

        }

    }

}

Nach dem Login kopieren

In diesem Beispiel wird der Das Problem, dass die nextLine()-Methode keine Eingaben in der Schleife liest, wird durch den expliziten Aufruf von scanner.nextLine() nach dem Lesen der Auswahl-Ganzzahl behoben. Dadurch wird sichergestellt, dass alle verbleibenden Zeichen im Eingabepuffer verworfen werden, sodass der nextLine()-Aufruf für den Satz ordnungsgemäß funktioniert.

Das obige ist der detaillierte Inhalt vonWie verarbeitet Javas „scanner.nextLine()' Eingaben, insbesondere in Schleifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage