我正在编写一种方法来计算给定数组中两个城镇之间的距离,方法是在第二个数组中添加两个城镇的索引之间的所有条目,但我无法调用indexOf第一个数组,用于确定添加应该从哪里开始。 Eclipse给出了错误"无法在数组类型String []"上调用indexOf。这似乎很直接,但我不明白为什么那不起作用。 请注意,该计划绝对不完整。
public class Exercise_3 {
public static void main(String[] args){
//Sets the array
String [] towns={"Halifax","Enfield","Elmsdale","Truro","Springfield","Sackville","Moncton"};
int[] distances={25,5,75,40,145,55,0};
distance(towns, distances, "Enfield","Truro");
}
public static int distance(String[] towns,int[] distances, String word1, String word2){
int distance=0;
//Loop checks to see if the towns are in the array
for(int i=0; i<towns.length; i++){
if(word1!=towns[i] || word2!=towns[i] ){
distance=-1;
}
//Loop is executed if the towns are in the array, this loop should return the distance
else{
for(int j=0; j<towns.length; j++){
*int distance1=towns.indexOf(word1);*
}
}
}
return distance;
}
}
答案 0 :(得分:1)
不,数组没有可以调用的任何方法。如果要查找给定元素的索引,可以将String[]
替换为ArrayList<String>
,其中具有 indexOf
方法来查找元素。
答案 1 :(得分:1)
它不起作用,因为 Java 不是 JavaScript 。
后者提供了array
原型实际公开函数indexOf
,而前者没有。{/ p>
JavaScript中的
Arrays与Java中的counterparts完全不同。
无论如何,您可能对Java中的ArrayList
类感兴趣(请参阅here了解更多详细信息),这与您正在寻找的内容更相似。
答案 2 :(得分:-1)
这个怎么样(来自this post)?
使用Arrays实用程序类有两种方法可以实现此目的。
如果数组未排序:
java.util.Arrays.asList(theArray).indexOf(o)
如果数组已排序,您可以使用二进制搜索来获得性能:
java.util.Arrays.binarySearch(theArray, o)
我希望这会对你有所帮助。如果没有,请下来投票。