多くの映画のタイトルと、その年、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