无法在字符串数组上调用indexOf?

时间:2015-11-26 22:55:29

标签: java arrays methods indexof

我正在编写一种方法来计算给定数组中两个城镇之间的距离,方法是在第二个数组中添加两个城镇的索引之间的所有条目,但我无法调用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;
}
}

3 个答案:

答案 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)

我希望这会对你有所帮助。如果没有,请下来投票。