Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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[] names = {"michel","john","mr x","text"}; int[] num ={1,2,3,4}; 我要求用户在数组中输入名称,并希望显示数组名称的数量。我们还希望检查输入的数组是否在数组中。如果不在数组中,则希望发送错误消息 为此,我创建了一个boolean=false并检查循环中的条件,然后执行 System.out.println("

我有一个数组值列表

String[] names = {"michel","john","mr x","text"};
 int[] num ={1,2,3,4};
我要求用户在数组中输入名称,并希望显示数组名称的数量。我们还希望检查输入的数组是否在数组中。如果不在数组中,则希望发送错误消息

为此,我创建了一个boolean=false并检查循环中的条件,然后执行

System.out.println("Enter the Name To get Numbers");
Scanner scanner = new Scanner(System.in);
String name=scanner.next();
boolean check =false;
int in = 0;
for (int i=0; i <names.length; i++)
{
    if (name.contains(names[i]))
    {
        check = true;
        in = i;
    }
    if (name.equals(names[i]))
    {
        System.out.println(num[i]);
      

    }else
    {
        System.out.println(" Choose the name in the array ");
    }
 }
System.out.println(“输入名称以获取数字”);
扫描仪=新的扫描仪(System.in);
字符串名称=scanner.next();
布尔检查=假;
int in=0;

for(int i=0;i首先在数组中搜索for循环是否存在(如果存在),然后执行
check=true
并打印数字

循环检查不在数组中后,打印错误消息

Scanner scanner = new Scanner(System.in);
String name=scanner.next();
boolean check =false;
for (int i=0; i <names.length; i++)
{
    if (name.equals(names[i]))
    {
        check = true; // if match with any array element
        System.out.println(num[i]);
    }
}
// if check is false means no element match in array, print err msg
if(!check)
{
   System.out.println(" Choose the name in the array ");
}
Scanner Scanner=新的扫描仪(System.in);
字符串名称=scanner.next();
布尔检查=假;

对于(int i=0;i您设置了
check
in
变量的值,但从未使用它们。对于每个不匹配的值,您也会在循环内打印“在数组中选择名称”,但您可能只想在循环完成时执行一次,以防找不到任何内容

这就是如何重写循环以获得所需内容的方法:

boolean check = false;
for (int i = 0; i < names.length; i++) {
    if (name.equals(names[i])) {
        check = true;
        System.out.println(num[i]);
    }
}
if (!check) {
    System.out.println(" Choose the name in the array ");
}

谢谢你的回复,但是我仍然只在循环中得到了错误消息,我有4个字符串数组,所以我在4个字符串中得到了错误消息times@Karthickyuvan如果(!check)
超出循环,则需要执行
查看我的解决方案
Map<String, Integer> map = new HashMap<>();
map.put("michel", 1);
map.put("john", 2);
map.put("mr x", 3);
map.put("text", 4);

Integer in = map.get(name);
if (in == null) {
    System.out.println(" Choose the name in the array ");
}
else {
    System.out.println(in);
}