我试图从一个txt文件中读取一个字符串和整数的组合到一个ArrayList中。我知道这个问题与ArrayList String对象转换为Integer有关,但我不知道如何修复它。我正在将arraylist的前两个索引初始化为实例变量“name”和“creationDate”。该程序的目的是一个MP3播放器,其中包含播放列表名称,创建日期,歌曲标题,艺术家和长度。请帮忙!!
public void readPlaylist(String path) {
String token = "";
ArrayList<String> temps = new ArrayList<String>();
try {
Scanner inputFile = new Scanner(new File(path)).useDelimiter("\n");
while (inputFile.hasNext()) {
token = inputFile.next();
temps.add(token);
}
inputFile.close();
} catch (java.io.FileNotFoundException ex) {
System.out.println("Could not open the input file");
}
this.name = (String) temps.get(0);
this.creationDate = (String) temps.get(1);
for (int i = 2; i < temps.size() -2; i+=3) {
String title = (String) temps.get(i);
String artist = (String) temps.get(i + 1);
int duration;
duration = parseInt((String) temps.get(i+2));
System.out.println(temps.get(i+2));
Song song = new Song(title,artist,duration);
list.add(song);
}
}
以下是我正在阅读的txt文件:
KB Jams
09/01/2013
Repect
Aritha Franklin
182
Since I Fell for You
Jimmy Smith
256
Green Onions
Booker T. & the MG's
174
One Nation Under the Groove (Instrumental)
Parliament Funkadelic
347
I'd Rather Be With You
Bootsy Collins
294
Alpha and Omega
Israel & New Breed
351
Nobody Greater
VaShawn Mitchell
397
答案 0 :(得分:1)
如果您的字符串包含除数字值之外的任何内容(例如空格),则会收到NumberFormatException错误。
该错误应告诉您要解析的内容。
您不会使用print语句查看空格或换行符的原因是因为它只是空格。
您可以修剪字符串以消除数字周围多余的空白
parseInt(temps.get(i+2).trim())