是否有与indexof()
类似的函数来搜索字符串数组(最好是未排序的)以获取字符串并返回它的索引? (或者可能是纵坐标值?)
例如我正在尝试:
String[] colours= {"Red", "Orange", "Yellow"};
System.out.println("indexOf(Red) = " +
colours.indexOf("Red"));
......但没有成功。
谢谢。
AV
附:这最终需要在二维数组中工作(如果重要的话)
答案 0 :(得分:5)
String[] colours= {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"};
Arrays.asList(colours).indexOf("Red"); // 0
OR
如果订单无关紧要那么
Arrays.sort(colours);
Arrays.binarySearch(colours,"Red");//binary search takes sorted[natural order] array as input
答案 1 :(得分:2)
对于排序数组,您可以使用Arrays.binarySearch:http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html
对于未排序的数组,Arrays.asList(array).indexOf("String")
会这样做。
然而,最后一种方法效率不高,因为列表将按顺序扫描。
答案 2 :(得分:0)
...坦白
int findString(String[] stringArray;String match) {
for (i=0;i<stringArray.length;++i) {
if (match.equals(stringArray[i]) return i;
}
}
你会没事的。你可以用比提出问题更短的时间写出来。