将用户输入的数字与随机生成的数字进行比较

时间:2015-09-14 20:05:25

标签: java

我的任务是创建一个随机生成的数字,要求用户输入一个数字,然后比较两者并显示一个消息框,告诉他们是否匹配。到目前为止,这是我的代码......

import javax.swing.*;   //GUI components

public class RandomGuessMatch {

    public static void main(String[] args) {
        Integer random = (1 + (int)(Math.random() * 5)),
                userNum;

        // Get the input
        userNum = JOptionPane.showInputDialog("Enter a number 1 - 5.");

        //Checks to see if numbers match
        boolean matches = (random == userNum);
        JOptionPane.showMessageDialog(null, "The random number is " + random + ". " + "Does it match? " + matches);

    }

}

我遇到的唯一错误是当我试图获取用户输入时。 “无法从String转换为Integer”。但是,我无法弄清楚如何获取用户的号码并将其与“userNum”相关联,以便我可以将其与“随机”进行比较。有什么帮助吗?

6 个答案:

答案 0 :(得分:1)

您可以通过解析将字符串转换为整数。

int x = Integer.parseInt("1");

请注意,如果String为NaN

,则会抛出异常

答案 1 :(得分:1)

JOptionPane的showInputDialog方法返回String。你可以做的是使用结果字符串作为Integer类的构造函数中的参数:

userNum = new Integer(JOptionPane.showInputDialog("Enter a number 1 - 5."));

此外,由于您使用的是Integer对象,因此必须使用equals方法对它们进行比较:

boolean matches = random.equals(userNum);

答案 2 :(得分:0)

您需要使用

将字符串响应强制转换为整数
Integer.parseInt(userChoice)

答案 3 :(得分:0)

您可以通过这种方式获得输入:

userNum = Integer.getInteger(JOptionPane.showInputDialog("Enter a number 1 - 5."));

稍后您可以进行一些输入验证以防止非整数输入。

答案 4 :(得分:0)

ShowInputDialog will return a String。因此,您将其值放入的变量也必须具有String类型。

尝试创建一个名为" userInput"的变量。并将用户输入的值放在那里。然后你可以说

userNum = Integer.valueOf(userInput);

从那里,使用" userNum.equals(随机)"比较两个整数。 double equals运算符只适用于int类型,而不是Integers。

答案 5 :(得分:0)

如果您读取用户输入它是一个String,那么您必须将userNum声明为String而不是Integer。

String userNum;

下一步是将随机数与字符串进行比较。要做到这一点,你需要Integer.valueOf(String s)方法,因此它们都是Integer值:

boolean matches = (random == Integer.valueOf(userNum));

玩得开心:)