首頁 > Java > java教程 > Java 的「scanner.nextLine()」如何處理輸入,尤其是循環中的輸入?

Java 的「scanner.nextLine()」如何處理輸入,尤其是循環中的輸入?

DDD
發布: 2024-12-19 18:07:17
原創
1014 人瀏覽過

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

使用scanner.nextLine()

在Java中,java.util.Scanner類別中的nextLine()方法一行來自流的文字。它通常用於讀取用戶的輸入。

考慮以下範例:

範例1:讀取單行

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);
    }
}
登入後複製

在此範例中,nextLine() 方法讀取使用者輸入的句子。它會正確等待使用者輸入值,然後再繼續讀取索引。

範例2:循環讀取

// 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();
            }
        }
    }
}
登入後複製

在此範例中, nextLine() 方法不會讀取循環中的輸入的問題可以透過在讀取選擇整數後明確呼叫scanner.nextLine() 來解決。這可確保丟棄輸入緩衝區中的任何剩餘字符,從而允許句子的 nextLine() 調用正常工作。

以上是Java 的「scanner.nextLine()」如何處理輸入,尤其是循環中的輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板