csv ファイルから読み取り、値をオブジェクトの配列に入れるプログラムを作成しています。そこで、5 つの属性を持つオブジェクト クラスを設定しました。得られないように見えるのは、トークン化された変数をオブジェクトの配列に入れる方法です。オブジェクト クラスのゲッターを使用して各インデックスのオブジェクト インスタンスを出力する system.out.printf を実行しましたが、null ポインターが返されます。だから私の推測では、トークンがオブジェクトの配列に格納されていないので、どうすればこれを行うことができますか? これは私がこれまでに持っているものです。
編集: これは私の CSV ファイル 12345,Left-Handed Bacon Stretcher,125.95,PGH,2 の行の 1 つです。
編集: これは java.lang.NumberFormatException: For input string: " 5" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.NumberFormatException: For input string: " 5" を求める人のために取得するスタック トレース エラーです。 Prog6.main (Prog6.java:97) の java.lang.Integer.parseInt (不明なソース)
Part[] part = new Part[20];
String partNumber;
String description;
double price = 0.0;
String warehouseID;
int quantity = 0;
try
{
inFile = new Scanner( new File( "parts.txt" ) );
}
catch( FileNotFoundException e )
{
System.out.println( "Error: File parts.txt not found" );
}
// read file
try
{
while ( inFile.hasNext() )
{
String record = inFile.nextLine();
String[] tokens = record.split(",[ ]*");
partNumber = tokens[0];
description = tokens[1] ;
price = Double.parseDouble( tokens[2] );
warehouseID = tokens[3] ;
quantity = Integer.parseInt( tokens[4] );
part[num] = new Part( partNumber, description, price, warehouseID, quantity );
num++;
}
}
catch( Exception e )
{
System.out.println( "File error " + e.getMessage() );
}
// close file
inFile.close();