我想在数组中搜索,我的代码是这样的:
public class A
{
public String [] Names;
public A( List<String> listSp)
{
Names = new String[listSp.size()];
listSp.toArray(Names);
}
public int numberOfState(String s)
{
int counter = 0;
while (Names[counter] != s)
{
counter ++;
}
return counter;
}
并在此代码中使用A类:
public class Main extends Activity
{
...
List<String> l = new ArrayList<String>();
l.add("a");
l.add("b");
A objA = new A(l);
int i = objA.numberOfState("b");
...
}
当运行应用程序并使用此部分时,已显示此错误:
不幸的是,Main已被停止
我怎么做?
答案 0 :(得分:1)
问题是“超出界限”,您需要检查counter
的值是否小于数组长度(或大小)的值。
你的代码应该是这样的:
public int numberOfState(String s) {
int counter = 0;
while (Names[counter] != s && counter < Names.length) {
counter ++;
}
return counter;
}