Java ArrayList IndexOutOfBoundsException 索引 : 1, 大小:1

标签 java arrays file arraylist bukkit

我正在尝试用 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|

其他解决方案,例如此处找到的解决方案:Write to text file without overwriting in Java

提前致谢。

最佳答案

问题 1 -> int x = 1;
解决方案:x应该从0开始

问题2->

((ArrayList)guildsArray.get(x)).add(Guild[i]);

你正在增加 x 所以 if x >= guildsArray.size() 然后你会得到 java.lang.IndexOutOfBoundsException

解决方案

if( x >= guildsArray.size())
      guildsArray.add(new ArrayList());
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];
    }
  }

关于Java ArrayList IndexOutOfBoundsException 索引 : 1, 大小:1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19462184/

相关文章:

java - 在设置布局之外添加元素(即 JLabels)

java - Linux 下 Runtime.getRuntime().exec() 的 Keytool 用法

java - 字符串加密有效,byte[]数组类型加密无效

PHP 创建文件并在一小时、一周等后删除它

java - 用Pig将二进制文件存储到hbase

java - 如何从特定列中获取所有价格添加它们并打印它们

C# 如何将数组中的每个元素添加到 XML 树中的子节点?

arrays - 如何用一维数组表示非二叉树?

java - 无法从 bin 读取输入文件

android - 使用 Apache POI 打开 .xlsx 文件时出现异常