如何获取数组中的索引值?

时间:2014-08-25 18:43:12

标签: java arrays

我有一个这样的数组:

String[] array = { "Designation1", "Designation2", "Designation3" };

如果用户放置"指定2"作为输入,代码应返回1

这可能是一个非常简单的问题,但我是Java的新手。所以请提出一些建议。

7 个答案:

答案 0 :(得分:4)

考虑使用List而不是数组(只是在List中包装你的数组)。通过这种方式,您可以访问类似indexOf(element)的方法,它将返回第一个已建立元素的索引,如果找不到数组中的元素,则返回-1。

String[] array = { "Designation1", "Designation2", "Designation3" };
List<String> list = Arrays.asList(array);

System.out.println(list.indexOf("Designation2")); //prints 1
System.out.println(list.indexOf("foo"));          //prints -1

答案 1 :(得分:3)

您可以循环遍历数组中的字符串,并找到字符串与您要查找的字符串匹配的索引。

int index = -1;
for (int i=0; i<array.length;i++) {
    if (array[i].equals(value)) {
        index = i;
        break;
    }
}

答案 2 :(得分:0)

你可以使用for循环

String[] array = { "Designation1", "Designation2", "Designation3" };   
 Scanner kb=new Scanner(System.in);
    String input=kb.next();
    int index;
    for(int i=0;i<array.length;i++)
    {
       if(array[i].equalsIgnoreCase(input))
     index=i;
    }

答案 3 :(得分:0)

你可以这样做。

String userinput="Designation2";
String[] array = { "Designation1", "Designation2", "Designation3" };
int length=array.length();
int index=0;
for(int i=0;i<length;i++)
{
    if(array[i].equals(userinput))
    {
         index=i;
         break;
    }

}

索引将为您提供用户想要的数组键。 此致..

答案 4 :(得分:0)

数组没有直接搜索方法,因此您需要先将其转换为列表

String[] array = { "Designation1", "Designation2", "Designation3" };
assert Arrays.asList(array).indexOf("Designation2") == 1;
assert Arrays.asList(array).indexOf("Anything else") == -1;

不要忘记-1表示“未找到”

或者您可以对其进行排序并使用binarySearch

答案 5 :(得分:0)

您可以使用ArrayUtils from Apache Commons

String[] array = { "Designation1", "Designation2", "Designation3" };

System.out.println(ArrayUtils.indexOf(array, "Designation1"));//0
System.out.println(ArrayUtils.indexOf(array, "Designation2"));//1
System.out.println(ArrayUtils.indexOf(array, "Designation3"));//2

答案 6 :(得分:0)

为了执行此任务,您可以使用两个数组,一个用于键名,另一个用于值。只需在第一个数组中搜索键,获取键名的索引并使用它从第二个数组中获取值。它不是最有效的,这可能不是最好的答案,但它适用于我。

只需确保数组中的索引排成一行,例如:

{"my","three","keys"};
{"My","Three","Values"};

在这种情况下,键/值设置为;

我/我的 三维/三 键/值

在您的情况下,您不需要使用值数组,只需使用索引。

也可以尝试使用ArrayList而不是数组,因为您可以使用ArrayList.indexOf(key)来获取ArrayList中键的索引。

希望这可以帮助您和其他人解决这个问题。 ☺