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

使用IntelliJ时需导入In类吗?Java代码报‘找不到符号’求解

报错原因分析与解决办法

核心问题

你代码里用的In类不属于Java标准库,Java编译器默认找不到这个类,所以抛出了cannot find symbol错误。这个In类大多是Java入门教学(比如普林斯顿大学的算法入门课程)提供的自定义工具类,用来简化文件和标准输入的读取操作。

解决办法

方案1:引入对应的In类文件

  1. 找到包含In类的In.java源文件(通常和StdOut.java、StdIn.java属于同一套工具)。
  2. 将In.java放到你的IntelliJ项目源码目录下(比如src文件夹,和DebugExercise3.java处于同一目录或同一个包中)。
  3. 如果In类有包声明(比如package edu.princeton.cs.algs4;),确保你的DebugExercise3类在相同包下,或者在代码开头添加import edu.princeton.cs.algs4.In;导入语句。

方案2:改用Java标准库实现

如果找不到In类的源文件,可以直接用Java标准库的Scanner类替代,实现相同的文件读取功能,改写后的代码示例:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class DebugExercise3 {
    public static int countTurnips(Scanner in) {
        int totalTurnips = 0;
        while (in.hasNextLine()) {
            String[] lineParts = in.nextLine().split(",");
            if (lineParts.length >= 4 && "turnip".equals(lineParts[1])) {
                totalTurnips += Integer.parseInt(lineParts[3]);
            }
        }
        return totalTurnips;
    }

    public static void main(String[] args) {
        try (Scanner in = new Scanner(new File("foods.csv"))) {
            System.out.println(countTurnips(in));
        } catch (FileNotFoundException e) {
            System.err.println("无法找到文件 foods.csv");
            e.printStackTrace();
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:25:22