【发布时间】:2017-03-06 20:12:56
【问题描述】:
我正在尝试使用扫描仪从 CSV 文件中读取,但是当我尝试读取最后一个双精度并且我的 CSV 文件中是否有不止一行时,我收到了 InputMismatchException。我认为这是因为它正在读取 \n 作为双精度的一部分。如何让它忽略换行符?
CSV 文件
P1,25,30
P2,10,10
Java
public static ArrayList<MarkEntry> readCSV(File file) {
ArrayList<MarkEntry> entries = new ArrayList<>();
try
{
Scanner in = new Scanner(file).useDelimiter(",");
while (in.hasNext())
{
String title = in.next();
double mark = in.nextDouble();
double outOf = in.nextDouble(); //Program Crashes here
entries.add(new MarkEntry(title, mark, outOf));
}
} catch (FileNotFoundException e)
{
System.out.println("File: " + file + " not found");
}
return entries;
}
【问题讨论】:
-
只需执行 String[] input = in.nexLIne().split(",") ,然后您将在数组的每个索引中拥有所有值
-
基于数组中的索引,您可以转换为 Double 或保留为字符串
标签: java csv java.util.scanner inputmismatchexception