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

Java读取控制台多行输入存入ArrayList仅存隔行数据问题求助

问题解决:Java读取多行输入丢失隔行数据

问题出在你调用nextLine()的方式上:在while循环的判断条件里,你已经调用了一次input.nextLine()读取一行,但没有把这行数据保存下来,直接用来判断是否为空。紧接着循环体里又调用了一次input.nextLine(),这会读取下一行数据,相当于每次循环跳过了一行,所以最终只存储了偶数行的内容。

修正方法很简单:先把循环条件里读取的行保存到变量中,判断非空后再加入列表,避免重复读取:

System.out.println("Please enter your input: ");
String line;
while(input.hasNextLine() && !(line = input.nextLine()).isEmpty()) {
    System.out.println("new line is: " + line);
    inputStrings.add(line);
}
System.out.println("input is: " + inputStrings);

或者拆分逻辑,更清晰的写法:

System.out.println("Please enter your input: ");
while(input.hasNextLine()) {
    String line = input.nextLine();
    if(line.isEmpty()) {
        break;
    }
    System.out.println("new line is: " + line);
    inputStrings.add(line);
}
System.out.println("input is: " + inputStrings);

这样修改后,输入test1、test2、test3、test4,输出就会是期望的[test1, test2, test3, test4]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:52:39