我有一个文件,其中包含许多电影标题以及它们的年份、5 星评分和长度。我正在尝试读取文件并将标题、年份、评级和长度存储为变量。我遇到的问题是在我检索年份的代码中。代码可以编译,但在运行时会抛出 NumberFormatException 异常,因为它会播放一部多年的电影(例如,它被列为 2006-2009)。这是我的代码。
while((line = bufferedReader.readLine()) != null) {
//System.out.println(line);
for(int i = 0; i < line.length(); i++)
{
if(line.charAt(i) == ')' || line.charAt(i) == '-')//get year
{
yr = line.substring(yearStart,i);
year = Integer.parseInt(yr);
}
}
System.out.println(year);
}
不应该line.charAt(i) == '-'
在我的 if 语句中处理这个问题吗?
编辑:下面的代码是 yearStart 的来源。
if(line.charAt(i) == '(')//get title
{
title = line.substring(0,i);
yearStart = i+1;
}
该文件的格式如下:
title (year) | rating, length
对不起,我最初应该包含该文件。
编辑#2:这是文件的一部分的示例,如果有帮助的话
!Women Art Revolution (2010) | 3 stars, 1hr 22m
#1 Cheerleader Camp (2010) | 3 stars, 1hr 35m
$5 a Day (2008) | 3.4 stars, 1hr 37m
'night, Mother (1986) | 3.7 stars, 1hr 36m
'Til Death (2006-2009) | 3.7 stars, 4 Seasons//This is the one that causes the error
@Suicide Room (2011) | 3.4 stars, 1hr 51m
... And God Spoke (1993) | 2.8 stars, 1hr 22m