首页 > Java > java教程 > Java 的'scanner.nextLine()”如何处理输入,尤其是循环中的输入?

Java 的'scanner.nextLine()”如何处理输入,尤其是循环中的输入?

DDD
发布: 2024-12-19 18:07:17
原创
986 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板