私はStackExchangeを初めて使用していますので、この質問をできるだけ控えめにするよう最善を尽くします。 .csvファイルから作成された文字列配列からすべての整数を取得しようとしています。ファイルには、そう、ArrayIndexOutOfBound intから文字列を解析するとき
- タイプ、名前、untiprice、数量
- Bitem、歯磨き粉、1.50,2
- Fitem、卵、2.50,1
などのように見えます。..
配列に数値を追加しようとするまで、すべて正常に動作します。出力はArrayIndexOutOfBoundsExceptionを返します。私はこの配列のMAX_SIZE = 100を作った。テキストファイルの整数の量は8以下である。なぜこれが問題であるのか分からない。私のfor-loopsは完全に間違っているのですか?これを
num[i] = Integer.parseInt(numStrs[j]);
希望:
num[i] = Integer.parseInt(numStrs[i]);
をだからではなく、その使用にこれは、numStrs[i]
numStrs[j]
とを変更:
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]);
}
}
}
私のSimpleCSVのようなCSVリーダーパッケージを検討したいと思うかもしれません。http://256stuff.com/sources/simplecsv/ – Gray
@Gray将来私はこれをdefintly使用します。しかし、私はまた、これがなければ私がそれをすることができるかどうかを見たいと思う。おかげで –