java.lang.ArrayIndexOutOfBoundsException,字符串数组
如何修复由以下原因引起的错误:java.lang.ArrayIndexOutOfBoundsException:length=0;索引=0: 我试图简化代码,例如布尔值I有时是真的,有时是假的,这与它们工作正常无关。 我找不到的是如何从bListA声明数组aList,就像这部分代码:java.lang.ArrayIndexOutOfBoundsException,字符串数组,java,android,arrays,Java,Android,Arrays,如何修复由以下原因引起的错误:java.lang.ArrayIndexOutOfBoundsException:length=0;索引=0: 我试图简化代码,例如布尔值I有时是真的,有时是假的,这与它们工作正常无关。 我找不到的是如何从bListA声明数组aList,就像这部分代码:aList[y]=bListA[x] ` B类: public String[] bList ={"a","b","c"}; A类: String[] bListA=new B().bList; int x; in
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++;
}
}
String[]bListA=new B().bList;
int x;
int y=0;
String[]aList=新字符串[0];
布尔I;
对于(x=0;x您声明了一个大小等于零的数组
String[] aList = new String[0];
这就是为什么你有这个例外
您应该这样做:
String[] aList = new String[bListA.length()];
看起来你正试图扭转你的bList
在这里,您已声明大小为0的列表,因此无法向其中添加任何元素
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]);
List List=new ArrayList();
列表.添加(bListA[x]);
通过这种方式,您可以添加任意数量的新字符串[bListA.length()];您的列表大小仅为0。我知道所有这些,我的朋友们,这不是answare,String[]aList=新字符串[bListA.length()]我希望列表有自己的大小,因为我想将其用于列表视图,您的列表大小仅为0。是的,我想在每次找到新的i时扩展该大小,如果不是,则它应该为零。您在下面的ZAhmeds回答中提到,如果i
为真,您希望保存元素。因为您直接声明了i
在循环的之前,并且永远不要更改它,aList
的长度要么为0(I=false)
,要么始终与bList的长度相同(I=true)
。你应该解释一下你使用的是什么,我想你的问题会更容易理解。你不能扩展数组,你只能给同一个变量分配一个新的、更大的容器。这段代码只创建了一个不能存储任何东西的容器(因为它的大小是0)因此,您尝试放入的所有内容都立即超出了范围。正如其他人所说,查看ArrayList
我希望列表有自己的sizeList=new ArrayList();list.add(bListA[x]);这可能就可以了。我检查一下,然后再返回几分钟。我希望列表有自己的大小。正如@kapsym提到的,使用ArrayList而不是Array。