java - Android:用文本文件中的项目填充微调器

标签 java android indexoutofboundsexception

我想用我的主机上的文本文件中的项目填充微调器。 文本文件内容以“\n”字符分隔:

Afghanistan
Albania
Algeria
Andorra
Angola

我写了这段代码,但出现了这个错误:

03-10 12:32:07.716: E/AndroidRuntime(7670): 
FATAL EXCEPTION: Thread-69056
03-10 12:32:07.716: 

E/AndroidRuntime(7670): 
java.lang.ArrayIndexOutOfBoundsException: 
length=91; index=91

                    bo.write(buffer);
                    String s = bo.toString();

                    final Vector<String> str = new Vector<String>();
                    String[] line = s.split("\n");
                    int index = 0;
                    while (line[index] != null) {
                        str.add(line[index]);
                        index++;
                    }

最佳答案

你需要改变条件.. 与此:

while (line[index] != null) {
   str.add(line[index]);
   index++;
}

如果说行的大小是 10,index++ 会将其变为 11。 因此 line[11] 不会为空,而是抛出 ArrayIndexOutOfBoundsException .

将条件更改为:

for(int i=0;i<line.length;i++) {
    if(line[i] != null) {
       str.add(line[index]);
    }
}

关于java - Android:用文本文件中的项目填充微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22299024/

相关文章:

java - 如何从浏览器区域拖动并存入浏览器区域?

java - 了解Options.orElse

java - TCP 连接比 ping 花费 X100 更长的时间

Android 开源 Activity 让用户选择/创建媒体?

Java 泛型 : How to wrap/extend Android Activity test case?

java - 索引越界 : 1 (java) when passing a string paramater through a method

java - 为什么 switch 语句上有奇怪的缩进?

android - Android 上的默认文本大小是多少?

java - 这个程序从哪里获取它的数字,为什么这是由于增加 1 数组大小引起的? ( java )

java - System.arraycopy 是否有抛出 IndexOutOfBoundsException 的情况?