web-dev-qa-db-ja.com

Java ArrayList IndexOutOfBoundsExceptionインデックス:1、サイズ:1

Javaで特定のファイルを読み取って、それを多次元配列にしようとしています。スクリプトからコード行を読み取るたびに、コンソールに次のように表示されます。

Caused by: Java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

このエラーは、コーディングが特定のインデックスに到達できない場合に発生することはわかっていますが、現時点では修正方法がわかりません。

これが私のコーディングの例です。

int x = 1;
while (scanner.hasNextLine()) {
  String line = scanner.nextLine();
  //Explode string line
  String[] Guild = line.split("\\|");
  //Add that value to the guilds array
  for (int i = 0; i < Guild.length; i++) {
    ((ArrayList)guildsArray.get(x)).add(Guild[i]);
    if(sender.getName().equals(Guild[1])) {
      //The person is the owner of Guild[0]
      ownerOfGuild = Guild[0];
    }
  }
  x++;
}

**テキストドキュメント**

Test|baseman101|baseman101|0|
Test2|Player2|Player2|0|

ここにあるような他の解決策: Javaで上書きせずにテキストファイルに書き込む

前もって感謝します。

4
baseman101

ここで問題が発生しています:

... guildsArray.get(x) ...

しかし、ここで発生します:

int x = 1;
while (scanner.hasNextLine()) {
   ...

コレクションと配列はゼロベースであるため(最初の要素はインデックス0)。

これを試して:

int x = 0;
0
Bohemian