【发布时间】:2017-02-16 21:02:46
【问题描述】:
我是 StackExchange 的新手,所以我会尽我最大的努力使这个问题尽可能地变得不稳定。我正在尝试从 .csv 文件创建的字符串数组中获取所有整数。文件是这样的,
- 类型、名称、单价、数量
- Bitem,toothpaste,1.50,2
- Fitem,eggs,2.50,1
等等……
在我尝试将数字添加到数组之前,一切都运行良好。输出返回 ArrayIndexOutOfBoundsException。我使这个数组的 MAX_SIZE = 100。文本文件中的整数数量不超过 8。我不明白为什么会出现这个问题。我的 for 循环是完全错误的还是有更多问题?
public static void loadNums()
{
String inputFile=("/Users/user1/Desktop/list.csv");
File file = new File(inputFile);
Scanner scanFile = null;
try{
scanFile =new Scanner(file);
}catch(NumberFormatException | FileNotFoundException exception){
System.out.println("Error");
}
if (scanFile != null)
{
String[] numStrs = scanFile.nextLine().split(",");
int[] num = new int[numStrs.length];
for (int i =0; i <numStrs.length; i++)
{
if (i ==0)
{
System.out.println("Numbers");
}
else
{
numStrs = scanFile.nextLine().split("\\d+.,\\d+");
for (int j =0; j <numStrs.length; j++)
{
num[i] = Integer.parseInt(numStrs[i]);
}
System.out.println(num[i]);
}
}
}
【问题讨论】:
-
你可能想考虑一个 CSV 阅读器包,比如我的 SimpleCSV 256stuff.com/sources/simplecsv
-
@Gray 我将来肯定会使用它。但我也想看看没有这个我能不能做到。谢谢
标签: java arrays parsing for-loop java.util.scanner