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

Java 如何通过将输入字与字符串数组中的元素进行比较来获得结果

Java 如何通过将输入字与字符串数组中的元素进行比较来获得结果,java,Java,因此,我试图实现的是,当我根据输入的请求编写一个像“Meat”这样的单词时,该方法将检查关系,并将为单词“Meat”运行适当的结果,比如如果是“Meat”,则应打印输入“woof”。但在执行时,什么都不会发生。我必须告诉大家,我对Java和编程还不熟悉。谢谢你的耐心 package animals; import java.util.Scanner; public class Animal { public int hungerLvl = 0; pu

因此,我试图实现的是,当我根据输入的请求编写一个像“Meat”这样的单词时,该方法将检查关系,并将为单词“Meat”运行适当的结果,比如如果是“Meat”,则应打印输入“woof”。但在执行时,什么都不会发生。我必须告诉大家,我对Java和编程还不熟悉。谢谢你的耐心

 package animals;

    import java.util.Scanner;

    public class Animal {

    public int hungerLvl = 0;   
    public String food;
    public String[] foodTypes = {"Meat" , "Grass", "Water"};
    Scanner in = new Scanner(System.in);

    public void  eatFood(){

       System.out.println("Enter food: ");
       food = in.nextLine();    
       if(food == foodTypes[0].toString()){
          System.out.println("woof");
          hungerLvl++;
          System.out.println("Hunger lvl incresead to " + hungerLvl);
       } else {
           if (food == foodTypes[1].toString()){
               System.out.println("Animal is eating grass");
               hungerLvl++;
           }
           if (food == foodTypes[2].toString()){
               System.out.println("Animal is drinking water");
               hungerLvl++;
           }           
       }  
    }
    //ignore this method :)
    public int maxLvl(){
       if(hungerLvl == 5){
           System.out.println("No more food, going to take a nap!");
           hungerLvl = hungerLvl - 5;
       }
       return 0;
    }

     public static void main(String[] args){
        Animal animal = new Animal();

     animal.eatFood();
     }
     }

使用str.equals或str.match

   public void  eatFood(){
   System.out.println("Enter food: ");
   food = in.nextLine();    
   if(food.matches(foodTypes[0])){
      System.out.println("woof");
      hungerLvl++;
      System.out.println("Hunger lvl incresead to " + hungerLvl);
   } else {
       if (food.matches(foodTypes[1])){
           System.out.println("Animal is eating grass");
           hungerLvl++;
       }
       if (food.matches(foodTypes[2])){
           System.out.println("Animal is drinking water");
           hungerLvl++;
       }           
   }  
}

使用str.equals或str.match

   public void  eatFood(){
   System.out.println("Enter food: ");
   food = in.nextLine();    
   if(food.matches(foodTypes[0])){
      System.out.println("woof");
      hungerLvl++;
      System.out.println("Hunger lvl incresead to " + hungerLvl);
   } else {
       if (food.matches(foodTypes[1])){
           System.out.println("Animal is eating grass");
           hungerLvl++;
       }
       if (food.matches(foodTypes[2])){
           System.out.println("Animal is drinking water");
           hungerLvl++;
       }           
   }  
}

这不起作用:
food==foodTypes[1]。toString()
您想使用String.equals您有什么具体的问题吗?这有点含糊不清。目前,这读起来更像是“为我调试我的代码”,而它读起来更像是“相关代码有一个特定的问题”。好的想法是,当我将输入写为“Meat”或“Grass”时,我希望程序输出匹配字的结果,就像我将输入写为:Meat然后作为输出将是方法中的“Woof”字一样,但是当我输入并按enter键运行nothing returns时,我重复一遍,我是一个新手,并不是在寻找新的完整代码来解决问题,而是提示,谢谢!那么你真的需要
if
语句在
else
中吗?你可以直接使用
else if()
语句或
for
循环使用
if
语句这不起作用:
food==foodTypes[1]。toString()
您想使用String.equals您有什么具体的问题吗?这有点模糊/笼统。目前,这读起来更像是“为我调试我的代码”,而它读起来更像是“相关代码有一个特定的问题”。好的想法是,当我将输入写为“Meat”或“Grass”时,我希望程序输出匹配字的结果,就像我将输入写为:Meat然后作为输出将是方法中的“Woof”字一样,但是当我输入并按enter键运行nothing returns时,我重复一遍,我是一个新手,并不是在寻找新的完整代码来解决问题,而是提示,谢谢!那么您真的需要
else
语句中的
if
语句吗?您可以直接使用
else if()
语句或
for
循环
if
语句