0

私は詳細でいっぱいのファイルを与えられており、それを抽出し、それぞれの列に従ってオブジェクトの異なる配列に保存する必要があります。注意が必要なのは、すべての行に同じ量のデータがあるわけではないということです。私はファイルを読むことができ、それを分割することができます。

20005,Arsenal,ManU,Arsenal,WestHam,Y,2,3,40000
2006,ManU,Chelsea,ManU,WestHam,N
2007,ManU,Arsenal,ManU,WestHam,Y,1,0,260000
2008,Chelsea,ManU,Chelsea,Swansea,Y,4,0,285630
2009,Chelsea,ManCity,Chelsea,Swansea,N

すべてを列6までの配列に格納できます。その後、一部の行では情報が提供されません。これは、Eclipseからエラーが発生したときです。どうすればそれを修正できますか?

これが私のコードです:(これは課題であり、人々はおそらく答えを探しているので、すべてを投稿するわけではありません。共謀で捕まりたくないのです)

try{ 
Scanner kd = new Scanner(file);
    while(kd.hasNext()){
        String data = kd.nextLine();
        String [] values = data.split(",");
        String year = values[0];
        String winningscore= values[6];

私はこのエラーが発生します:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at GrandFinal.<init>(GrandFinal.java:19)
at MainClass.main(MainClass.java:11)
4

3 に答える 3

1

配列の長さをチェックしてください!

if(value.length > 6){
    // messages are given
} else {
    // messages are not given
}

または、おそらく、あなたが提供したデータによると:

if(value[5].equals("Y")){
    // messages are given
} else {
    // messages are not given
}
于 2013-05-29T14:18:32.957 に答える