使用IntelliJ时需导入In类吗?Java代码报‘找不到符号’求解
报错原因分析与解决办法
核心问题
你代码里用的In类不属于Java标准库,Java编译器默认找不到这个类,所以抛出了cannot find symbol错误。这个In类大多是Java入门教学(比如普林斯顿大学的算法入门课程)提供的自定义工具类,用来简化文件和标准输入的读取操作。
解决办法
方案1:引入对应的In类文件
- 找到包含
In类的In.java源文件(通常和StdOut.java、StdIn.java属于同一套工具)。 - 将
In.java放到你的IntelliJ项目源码目录下(比如src文件夹,和DebugExercise3.java处于同一目录或同一个包中)。 - 如果
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
相关产品推荐
相关产品推荐

