我的任务是创建一个随机生成的数字,要求用户输入一个数字,然后比较两者并显示一个消息框,告诉他们是否匹配。到目前为止,这是我的代码......
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”相关联,以便我可以将其与“随机”进行比较。有什么帮助吗?
答案 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));
玩得开心:)