Java代码帮助:查找数组中字符串的位置

时间:2013-02-18 18:19:52

标签: java arrays string

我正在开发一个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);

4 个答案:

答案 0 :(得分:1)

首先,进入循环以收集所有用户输入。实现一个触发器,使程序进入查找模式。然后你可以使用Apache Commons ArrayUtils.indexOf函数

请参阅http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.html#indexOf(java.lang.Object[], java.lang.Object, int)

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