Java:无法让.equals()工作

Ben*_*nor 0 java equals

我想制作一个基本游戏,其中生成两个随机数,用户必须输入正确的产品.

我究竟做错了什么?谢谢

import java.util.Scanner; 
import java.awt.*;

public class Userinput {

    public static void main (String[] args) {
        String firstName;

        //Create scanner to obtain user input
        Scanner scanner1 = new Scanner( System.in );
        int a,  b, correctAnswer;
        a=(int) (Math.random()*10);
        b=(int) (Math.random()*10); 

        //obtain user input
        System.out.println("Enter your first name: ");
        firstName = scanner1.nextLine();

        //output information
        System.out.print("Hello " + firstName + " ");
        System.out.println("what is " + a +" times " + b);
        String answer1 = scanner1.nextLine();
        correctAnswer = a * b;
        if ((answer1).equals(correctAnswer))
            System.out.println("Correct!");
        else if (!(answer1).equals ("correctAnswer"));
            System.out.println("Incorrect!");
    }
}    
Run Code Online (Sandbox Code Playgroud)

And*_*ner 5

你是一个比较String(answer1)到Integer(correctAnswer).那是比较苹果和橘子,它们永远不会相同.

您需要转换Stringint:

Integer.parseInt(answer1)
Run Code Online (Sandbox Code Playgroud)

如果answer1无法解析为整数,则可能会失败; 或转换intString:

Integer.toString(correctAnswer)
Run Code Online (Sandbox Code Playgroud)

然后比较它们:

Integer.parseInt(answer1) == correctAnswer  // You can use == because int is primitive.
  or
answer1.equals(Integer.toString(correctAnswer))
Run Code Online (Sandbox Code Playgroud)