在List中查找子字符串并返回索引号

时间:2013-04-23 08:37:05

标签: java arrays list substring

我有一个List,字符串如下:

String One
String Two
String Three

现在我想获得子串“One”的索引号。我怎么能得到这个? 如果我将它转换为数组,然后:

,我才能做到
public static int findInArray(Object[] arr, String searchName) {
int i;
for (i=0; i<arr.length; i++ ) { 
    String test = arr[i].toString();
    if (test.contains(searchName)) {
        //System.out.println("Substring found in:"+i);
        break;
    }
}
return i;
}

是否有办法在不将其转换为数组的情况下搜索子字符串?

3 个答案:

答案 0 :(得分:0)

列表已包含索引

 for(int i=0;i<list.size();++i){
     if (list.get(i).contains("searchString")) {
         System.out.println("Substring found in:"+i);
     }
 }

答案 1 :(得分:0)

这是您正在寻找的代码,但它的性能非常糟糕,如果您的列表太大,您应该考虑采用不同的方法。

public static int find(List<String> list, String searchString) {
    for(int i=0 ; i < list.size() ; ++i){
        if (list.get(i).contains(searchString)) {
            return i;
        }
    }
    return -1;
}

答案 2 :(得分:-1)

尝试这种方式,您可以获取其索引,或返回-1表示未找到。

public static int findInList(List<String> list, String searchName) {
    for(String str : list){
        if(str.indexOf(searchName) > -1){
          //System.out.println("Substring found in:"+i);
              return list.indexOf(str);
        }
    }
    return -1;
}