我正在开发一个java程序,允许用户将名称输入到数组中。现在我想设置一个选项,如果他们想要进入并找到它将在屏幕上显示的名称位置。因此输入Sting(名称),System.out将显示名称和数字。
Scanner input = new Scanner(System.in);
System.out.println("Enter the guest's name" ) ;
//what to put here?
System.out.println(name + "is at position" + spot);
答案 0 :(得分:1)
首先,进入循环以收集所有用户输入。实现一个触发器,使程序进入查找模式。然后你可以使用Apache Commons ArrayUtils.indexOf函数
答案 1 :(得分:1)
这只是一个快速解决方案,但您可以这样做:
public class Simplefinder{
public static void main(String[] args){
int spot = 0;
String input = "Bob";
String[] names = new String[] { "John", "Sebastion", "Bob" };
for(int i = 0; i< names.length; i ++){
if(input.equals(names[i])){
spot = i;
}
}
System.out.println(spot);
}
}
答案 2 :(得分:0)
创建一个hashmap,将该位置添加为整数。
在恒定时间内搜索很容易
HashMap<String, Integer> list=new HashMap<String, Integer>();
搜索
int pos= list.get(searchString);
答案 3 :(得分:0)
我会创建一个函数findIndex()
,它会搜索列表并返回索引。关于此函数的有效部分是它在找到您要查找的值后停止执行。
public class SearchList {
public static void main(String[] args) {
String input = "Bob";
String[] names = new String[] { "John", "Sebastion", "Bob" };
int index = findIndex(input, names);
System.out.println(index);
}
public static int findIndex(String value, String[] arr) {
for(int i = 0; i < arr.length; i++)
if(value.equals(arr[i])) return i;
return -1;
}
}