【发布时间】:2014-01-25 03:41:09
【问题描述】:
代码相当简单,但我不知道为什么会出现此错误。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Project1 {
public static void main(String[] args) {
String fileName = "States.csv";
File file = new File(fileName);
try {
Scanner stream = new Scanner(file); // or use new File();
while (stream.hasNext()){
String data = stream.next();
String[] values = data.split(",");
System.out.println(values[3] + "***");
}
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
system.out.println(values[3] - "***") 上可能有问题,我看了看但没有运气。
【问题讨论】:
-
你确定
values的最小长度是4吗? -
确保值数组的长度至少为 4。
-
出现这里的错误是因为数组在某些情况下没有索引为3的项。根据您的拆分,可能没有足够的逗号分隔值,例如 ("hello, world, bye") 会导致此类错误,而 ("hello, world, bye, foo") 不会。
-
不是值的最小长度是随机的,我只是想打印 4 个索引值?
-
我建议您检查文件“States.csv”的内容。检查 System.out.println(values[2] + "***");看看会发生什么。