Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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_String_Logic - Fatal编程技术网

Java 如何将一个字符串与多个字符串数组进行比较

Java 如何将一个字符串与多个字符串数组进行比较,java,arrays,string,logic,Java,Arrays,String,Logic,我正在尝试编写一个程序,用户在其中输入他们的杂货清单,然后根据商品的类型,该程序将为您提供一个良好的订单,以便为您的商品购物(即将肉类和蔬菜放在一起) 这是我当前的问题,我无法将用户输入与存储项的多个字符串类型数组进行比较 String[] VegiFruit = {"Apples", "Lettuce", "Broccoli"}; String[] Meats = {"Ground beef", "Hambuger"}; Scanner USER_IN = new Scanner(Syste

我正在尝试编写一个程序,用户在其中输入他们的杂货清单,然后根据商品的类型,该程序将为您提供一个良好的订单,以便为您的商品购物(即将肉类和蔬菜放在一起) 这是我当前的问题,我无法将用户输入与存储项的多个字符串类型数组进行比较

String[] VegiFruit = {"Apples", "Lettuce", "Broccoli"};
String[] Meats = {"Ground beef", "Hambuger"};

Scanner USER_IN = new Scanner(System.in);
Methods Use = new Methods(); //This is another class I have, it just makes printing empty lines and lines  of **** look nicer

Use.border();
System.out.println("Enter Item name then follow instructions.");
Use.space();

System.out.print("Item 1: ");
String InptOne = USER_IN.nextLine();

}
for (int i = 0; i < VegiFruit.length; i++)
{
    if(Arrays.asList(VegiFruit).contains(InptOne))
    {
        System.out.println("Item is a VEGI");
    }
}
for(int p = 0; p < Meats.length; p++)
{
    if(Arrays.asList(Meats).contains(InptOne))
    {
       System.out.println("Item is a MEAT");
    }
}
String[]VegiFruit={“苹果”、“莴苣”、“西兰花”};
串[]肉={“碎牛肉”,“火腿”};
扫描仪用户_IN=新扫描仪(System.IN);
方法使用=新方法()//这是我的另一个类,它只是让打印空行和****行看起来更好
使用.border();
System.out.println(“输入项目名称,然后按照说明操作”);
使用.space();
系统输出打印(“第1项:”);
字符串InptOne=USER_IN.nextLine();
}
对于(int i=0;i
您无需遍历循环,因为contains方法将与列表中的所有元素进行比较

我运行了你的代码,下面的工作正常。 if(Arrays.asList(VegiFruit).contains(InptOne)) { System.out.println(“项目是一个VEGI”+InptOne); }

        if(Arrays.asList(Meats).contains(InptOne))
        {
           System.out.println("Item is a MEAT "+InptOne);
        }
但是,请注意,这是区分大小写的比较,如果用户没有以您的格式输入蔬菜,那么它将不起作用

要解决该问题,您可以采取两种方法:

  • 在contain方法中比较veegetables/meat列表之前,先输入.toUpperCase()

  • 2.使用
    i
    p
    的目的是什么?请告诉我们确切的行为是什么。您输入的是什么输入,程序的行为是什么?虽然您使用的某些循环的唯一效果似乎是浪费时间,但
    contains
    方法似乎使用正确。一般来说,在你告诉我们“它不正常工作”的地方张贴问题是没有帮助的。你有更多的信息,请不要对我们保密。好的,非常感谢你,我对这个很陌生,不知道我可以摆脱for循环