如何在Java中找到用户接受的字符串数组的索引?

时间:2018-08-04 12:05:27

标签: java arrays string

接受来自用户的字符串,例如:[Aamir,Hrithik,Salman] 现在,当我通过Hrithik时,它应该返回其索引吗? 怎么样?

public static void main(String[] args)
{
    int str,i;
    String check;
    Scanner sc=new Scanner(System.in);
    System.out.println("Enter string array size: ");
    str=sc.nextInt();
    String arr[]= new String[str];
    System.out.println("Enter elements for String array: ");

    for(i=0;i<str;i++)
    {
        arr[i] = sc.next();
    }
    System.out.println(Arrays.toString(arr));

    System.out.println("Enter the name to check index of it:");
    check=sc.next();
    if(arr[i].equals(check))
    {
        System.out.println(i);
    }
}

4 个答案:

答案 0 :(得分:0)

检查数组arr[i].equals(check)的单个元素没有太大帮助。请注意,i尚未从上一次循环执行中重置,您可能会得到无效的数组索引(i >= arr.length)。

最好遍历数组的所有元素以查找匹配项:

for(i = 0; i < str; ++i) {
    if (arr[i].equals(check)) {
        System.out.println(i);
        break;
    }
}

答案 1 :(得分:0)

将数组转换为列表,然后使用indexOf方法。

    String[] arr = {"Aamir","Hrithik","Salman"};
    String target = "Hrithik";
    System.out.println(Arrays.asList(arr).indexOf(target));

答案 2 :(得分:0)

您需要在末尾添加一个for循环以遍历整个数组。下面的代码应该工作。我还做了一些其他编辑,使代码总体上更好。

旁注:您应该对代码进行更好的格式化,以使其更具可读性。在大多数IDE上,您可以使用CTRL / CMD + SHIFT + F自动格式化代码。

public static void main(String[] args) {

    int str, i;
    String check;

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter string array size: ");
    str = sc.nextInt();

    String arr[] = new String[str];
    System.out.println("Enter elements for String array: ");

    for (i = 0; i < str; i++) {
        arr[i] = sc.next();
        System.out.println(arr[i]);
    }

    System.out.println("Enter the name to check index of it:");
    check = sc.next();

    for (int j = 0; j < str; j++) {
        if (arr[j].equals(check)) {
            System.out.println(j);
            break;
        }
    }
}

答案 3 :(得分:0)

有多种方法可以返回数组内的值的索引。您可以:

使用循环:

for (i = 0; i < str; i++) {
    if (arr[i].equals(check)) {
        System.out.println("Index of value: " + i);
        break; 
    }
}

使用Arrays实用程序类:

System.out.println("Index of value: " + Arrays.asList(arr).indexOf(check));

使用Apache Commons Lang ArrayUtils类:

System.out.println("Index of value: " + ArrayUtils.indexOf(arr, check));