Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取数组中值的索引?_Java_Arrays - Fatal编程技术网

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

Java 如何获取数组中值的索引?,java,arrays,Java,Arrays,我有这样一个数组: String[] array = { "Designation1", "Designation2", "Designation3" }; 如果用户将指定2作为输入,则代码应返回1 这可能是一个非常简单的问题,但我对Java非常陌生。因此,请给出一些建议。您可以循环数组中的字符串,并找到字符串与您要查找的内容匹配的索引 int index = -1; for (int i=0; i<array.length;i++) { if (array[i].equals(

我有这样一个数组:

String[] array = { "Designation1", "Designation2", "Designation3" };
如果用户将指定2作为输入,则代码应返回1


这可能是一个非常简单的问题,但我对Java非常陌生。因此,请给出一些建议。

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

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

考虑使用列表而不是数组,而不是将数组包装到列表中。通过这种方式,您将可以访问像indexOfelement这样的方法,该方法将返回第一个创建的元素的索引,如果在数组中找不到元素,则返回-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

您可以使用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;
    }

你可以这样做

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;
    }

}
索引将为您提供用户想要的数组键。
关于..

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

String[] array = { "Designation1", "Designation2", "Designation3" };
assert Arrays.asList(array).indexOf("Designation2") == 1;
assert Arrays.asList(array).indexOf("Anything else") == -1;
不要忘记-1表示“未找到”

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


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

只需确保数组中的索引对齐即可,例如:

{"my","three","keys"};
{"My","Three","Values"};
在这种情况下,键/值设置为:

我的/我的 三/三 键/值

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

还可以尝试使用ArrayList而不是数组,因为可以使用ArrayList.indexOfkey获取ArrayList中键的索引


希望这能帮助你和其他人解决这个问题。☺

那不是钥匙。这是一个价值观。查找一个键,因为它的值是您要查找的。您是指数组索引。对不起。我已经更正了我的问题为什么不使用Map keyValueMap?此外,当数组已经有键-索引时,您正在定义字符串键。老实说,我甚至不知道它的存在!谢谢,@bcsb1001!
{"my","three","keys"};
{"My","Three","Values"};