【发布时间】:2013-04-23 08:37:05
【问题描述】:
我有一个列表,字符串如下:
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;
}
有没有办法在不将其转换为数组的情况下搜索子字符串?
【问题讨论】:
-
这里可以用List代替数组。
-
您应该考虑的另一件事是如何表达您的包含检查。从上面的示例继续,如果您有一个包含元素 ["String Twenty-One", "String Two", "String Three"] 的列表,您的代码将在索引 0 中找到子字符串 "One",这可能不是你想要什么。这可能是一个人为的例子,但这一点仍然成立。
-
@AndreaLigios 我也看到了你链接的这个问题,但没有我正在寻找的答案。
-
有三个有趣的答案:您可以创建自己的 ArrayList
实现,或者您可以在插入值时“标记”您的值,或者您可以使用 KMP 搜索应用于循环元素。或者您可以在此处接受的答案中这样做:)
标签: java arrays list substring