適切なゲッターとセッターメソッドを使用して、このように定義されたクラスがあります...
public class Album {
private int id;
private String artist;
private String name;
private int published;
}
このコンテンツを多数のアルバムに保存する .csv ファイルもあります。このファイルでは、1 行が 1 つのアルバムを表します。
.csv ファイルから情報を読み取り、Album
クラスのセッターを使用して値を割り当てようとしています。これが私のコードです...
public Map<Integer, Album> load() {
Scanner scanner = new Scanner(fileName);
Map<Integer, Album> loadedAlbums = new HashMap<Integer, Album>();
while(scanner.hasNextLine()) {
Album album = new Album();
String[] albumDivided = scanner.nextLine().split(",");
//in the .csv file every unit of information is divided by a comma.
album.setId(Integer.parseInt(albumDivided[0])); //this is line 11.
album.setArtist(albumDivided[1]);
album.setName(albumDivided[2]);
album.setPublished(Integer.parseInt(albumDivided[3]));
loadedAlbums.put(album.getId(), album);
}
return loadedAlbums;
}
ただし、このコードを使用しようとすると、次の例外が発生します。
java.lang.NumberFormatException: 入力文字列の場合: 11 行目の「albums.csv」。
この問題の原因を理解するのを手伝ってください。