CH_happy 2022-02-19 11:08 采纳率: 25%
浏览 28

为什么在使用nextLine接收时我没键盘输入他就继续跑完了

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
package Scanner;

import java.util.Scanner;

public class Happy01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
        if (scanner.hasNext()){
            String str1 = scanner.next();
            System.out.println("输出内容为:"+str1);
        }
        System.out.println("==================================");
        System.out.println("使用nextLine方式接收:");
        if (scanner.hasNextLine()){
            String str2 = scanner.nextLine();
            System.out.println("输出内容为:"+str2);
        }
        scanner.close();
    }
}
运行结果及报错内容

使用next方式接收:
hello world
输出内容为:hello
==================================
使用nextLine方式接收:
输出内容为: world

我的解答思路和尝试过的方法
我想要达到的结果

为什么在使用nextLine接收时我没键盘输入他就继续跑完了

  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2022-02-19 11:31
    关注

    因为有缓存,重新创建一个输入流。

    import java.util.Scanner;
    public class Main {
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
            System.out.println("使用next方式接收:");
            if (scanner.hasNext()){
                String str1 = scanner.next();
                System.out.println("输出内容为:"+str1);
            }
            System.out.println("==================================");
            System.out.println("使用nextLine方式接收:");
            scanner = new Scanner(System.in);
            if (scanner.hasNextLine()){
                String str2 = scanner.nextLine();
                System.out.println("输出内容为:"+str2);
            }
            scanner.close();
        }
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月19日