英文:
Cannot resolve symbol
问题
以下是翻译好的代码部分:
package Zoo;
import java.util.Scanner;
public class Animals {
    // 实例字段
    String Name;
    String Animal;
    String Color;
    int AgeYear;
    String FavoriteFood;
    // 构造方法
    public Animals(String name, String animal, String color, int ageYear, String favoriteFood) {
        Name = name;
        Animal = animal;
        Color = color;
        AgeYear = ageYear;
        FavoriteFood = favoriteFood;
    }
    // 主方法
    public static void main(String[] args) {
        Animals dolphin = new Animals("Gretha", "dolphin", "gray", 2, "salmon");
        Animals orangutan = new Animals("Peter", "orangutan", "black", 15, "bananas");
        System.out.println("请输入动物的名称,以查看相关信息。");
        Scanner input = new Scanner(System.in);
        String userInput = input.nextLine();
        if (userInput.equals(dolphin.Animal)) {
            System.out.println(
                dolphin.Animal + " " + dolphin.Name + " " + dolphin.AgeYear + " " + dolphin.Color + " " + dolphin.FavoriteFood);
        }
    }
}
请注意,我对代码进行了一些修正,包括将输入与 dolphin.Animal 进行比较时,我使用了 equals 方法。此外,我添加了一个字符串变量 userInput 来保存用户输入的内容,然后将其与 dolphin.Animal 进行比较。
英文:
So I'm currently just messing around with classes and objects to fully understand how it works, and tried to create a tiny search engine that would give information based on user input. The user basically has to enter the name of an animal (so far only 2 animals added).
I tried creating an if statement, so that if the input == animal (for instance a dolphin) it would spit out information on the dolphin. It won't recognize the "animal" in dolphin.animal, and I cannot seem to understand the issue.
Any help would be appreciated!
Here's my code:
package Zoo;
import java.util.Scanner;
public class Animals {
    //instance fields
    String Name;
    String Animal;
    String Color;
    int AgeYear;
    String FavoriteFood;
    //constructor method
    public Animals(String name, String animal, String color, int ageYear, String favoriteFood) {
        Name = name;
        Animal = animal;
        Color = color;
        AgeYear = ageYear;
        FavoriteFood = favoriteFood;
    }
    //main method
    public static void main(String[] args) {
        Animals dolphin = new Animals("Gretha", "dolphin", "gray", 2, "salmon");
        Animals orangutan = new Animals("Peter", "orangutan", "black", 15, "bananas");
        System.out.println("Please enter the name of an animal to view information regarding said animal.");
        Scanner input = new Scanner(System.in);
        input.nextLine();
        if(input == dolphin.animal)  {
            System.out.println(dolphin.Animal + dolphin.Name + dolphin.AgeYear + dolphin.Color + dolphin.FavoriteFood);
        }
    }
}
EDIT: yes I'm aware that the outprint is unfinished, but that I can fix afterwards of course
答案1
得分: 0
if (input == dolphin.Animal)
你还需要将input.nextLine()的结果赋值给一个变量,然后将该变量与dolphin.Animal进行比较。
英文:
if(input == dolphin.animal) 
should be
if (input == dolphin.Animal)
also you have to assign the result of input.nextLine() to a variable and then compare that variable with dolphin.Animal
答案2
得分: 0
javadoc 是你的朋友。Scanner 类中的方法 nextLine() 返回一个 String。你需要将该值保存在一个变量中,例如使用以下代码:
String theName = input.nextLine();
然后你需要使用方法 equals() 来判断 theName 是否等于 "dolphin",即:
if (theName.equals("dolphin")) {
   // 打印细节
}
顺便说一下,如果你遵循 Java 命名约定,可以让其他人更容易阅读和理解你的代码。
英文:
javadoc is your friend. Method nextLine() in class Scanner returns a String. You need to save that value in a variable, for example using this code:
String theName = input.nextLine();
Then you need to use method equals() to see if theName equals "dolphin", i.e.
if (theName.equals(dolphin.Animal)) {
   // print the details
}
By the way, if you adhere to the java naming conventions you make it easier for others to read and understand your code.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论