You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scanner类nextLine方法无法读取输入行,代码无输出原因咨询

代码无输出的原因分析

你的代码出现无输出(或看似无输出)的核心原因是Scanner类的输入读取机制问题:

  • scanner.nextInt() 只会读取输入中的整数数值,不会处理整数输入结束后的换行符(也就是你输入整数后按回车产生的\n)。
  • 后续调用的scanner.nextLine()会直接读取缓冲区中剩下的这个空换行符,最终得到一个空字符串。
  • System.out.println(scanner.nextLine()) 打印空字符串时,只会输出一个空白行,这个空白行在控制台中很容易被忽略,让你误以为程序没有任何输出。

修正方案

如果后续需要读取用户输入的字符串,可以在nextInt()之后额外调用一次scanner.nextLine()来消耗掉残留的换行符:

import java.io.IOException;
import java.util.Scanner;

public class MainTraining {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int countOfStrangers = scanner.nextInt();
        scanner.nextLine(); // 消耗掉整数后的换行符
        String[] name = new String[countOfStrangers];
        System.out.println(scanner.nextLine());
    }
}

或者换一种方式,先读取整行再转换为整数,避免换行符残留问题:

import java.io.IOException;
import java.util.Scanner;

public class MainTraining {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        int countOfStrangers = Integer.parseInt(scanner.nextLine());
        String[] name = new String[countOfStrangers];
        System.out.println(scanner.nextLine());
    }
}

内容的提问来源于stack exchange,提问作者dadadaniil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:01:11