我有一个这样的数组:
String[] array = { "Designation1", "Designation2", "Designation3" };
如果用户放置"指定2"作为输入,代码应返回1
。
这可能是一个非常简单的问题,但我是Java的新手。所以请提出一些建议。
答案 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中键的索引。
希望这可以帮助您和其他人解决这个问题。 ☺