java.lang.ArrayIndexOutOfBoundsException,String Array

时间:2017-08-10 11:34:46

标签: java android arrays

如何修复错误引起的:java.lang.ArrayIndexOutOfBoundsException:length = 0; index = 0:

我尝试简化代码,例如布尔我有时候是真或假,它们无关紧要。 我无法找到的是如何从bListA声明数组aList,就像这段代码一样:aList[y]=bListA[x] `

B级:

public String[] bList ={"a","b","c"};

A类:

String[] bListA=new B().bList;
int x;
int y = 0;
String[] aList= new String[0];
boolean I;
for (x=0;x<bListA.length;x++){
    if(I){
        aList[y]=bListA[x];
        y++;
    }
}
  

向我显示的错误是:由以下原因引起:   java.lang.ArrayIndexOutOfBoundsException:length = 0;索引= 0   单击它时,android studio会将您带到以下行:aList[y]=bListA[x]

如何修复这样的错误?请注意,我不想尝试和捕捉,因为如果我每次都是真的然后我得到一个错误,我必须显示对不起的按摩!但我永远得到错误!只有当你认为错误会出现一次时才会有好主意。

2 个答案:

答案 0 :(得分:2)

您声明了一个大小等于零的数组。

String[] aList = new String[bListA.length()];

这就是你有这个例外的原因。

你应该这样做:

{{1}}

答案 1 :(得分:2)

看起来你正试图扭转你的bList。

这里你声明了一个大小为0的aList,所以你不能添加任何元素

String[] aList= new String[0];

因此任何带有aList [1]等的东西都会给你错误。

所以,如果你想反转,请执行

String[] aList= new String[bListA.length()];

然后在for循环中,您可以执行aList[y]=bListA[x]

此外,如果您想使用动态数组

List<String> list = new ArrayList<String>();
list.add(bListA[x]);

这样您就可以添加任意数量的