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

Java中使用Scanner比较当前行与上一行时出现空指针异常

解决Scanner逐行读取文件时的空指针异常问题

嘿,我瞅见你这段用Scanner读文件的代码触发空指针异常了,咱们来一步步搞定它~

首先先看看你贴的原代码:

String previousLine = null; 
while (scanner.hasNextLine()) { 
    String line = scanner.nextLine(); 
    if(line.contains("Importing") && !previousLine.contains("Importing")) { 
        { 
            System.out.println(previousLine); 
        } 
        previousLine = line; 
    } 
}

问题根源

第一次进入循环的时候,previousLine还是初始的null值,这时候你调用!previousLine.contains("Importing")就会直接抛出空指针异常——毕竟null对象根本没法调用任何方法嘛!而且原代码里previousLine = line放在if块内部,会导致不满足条件时上一行内容不会更新,后续循环逻辑也会出错。

修复后的代码

咱们只需要加个previousLine != null的前置检查,同时把previousLine的更新移到循环末尾,确保每次循环都能正确更新上一行内容:

String previousLine = null; 
while (scanner.hasNextLine()) { 
    String line = scanner.nextLine(); 
    // 先确保上一行不为空,再执行包含性对比
    if(previousLine != null && line.contains("Importing") && !previousLine.contains("Importing")) { 
        System.out.println(previousLine); 
    } 
    // 每次循环都更新上一行,保证后续对比的准确性
    previousLine = line; 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:59:46