如何在android中搜索String Array?

时间:2015-04-12 04:08:37

标签: java android arrays algorithm oop

我想在数组中搜索,我的代码是这样的:

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已被停止

我怎么做?

1 个答案:

答案 0 :(得分:1)

问题是“超出界限”,您需要检查counter的值是否小于数组长度(或大小)的值。

你的代码应该是这样的:

public int numberOfState(String s) {
  int counter = 0;
  while (Names[counter] != s && counter < Names.length) {
    counter ++;  
  }
  return counter;
}