生成0000到9999之间的随机数

时间:2013-02-13 00:30:52

标签: java

我需要从0000到9999生成一个4位数字,我似乎无法这样做。我有这个代码,但有时会生成762,我不能让它这样做。我确实需要使用这些方法来生成它。

private java.util.Random rndGenerator = new java.util.Random();
private int randomValue;
public final static int NUMBER_OF_VALUES = 9999;


public GuessRandomValue() {
    randomValue = rndGenerator.nextInt(NUMBER_OF_VALUES);
}


public void setAnswer() {
    randomValue = rndGenerator.nextInt(NUMBER_OF_VALUES);
}  

1 个答案:

答案 0 :(得分:5)

您只需使用表达式

格式化随机值
String.format("%04d", randomValue);

如果randomValue为762,则String.format的调用将根据需要返回“0762”。


编辑:回应下面的评论

请将randomValue保留为整数。您只想将此代码用于用户交互,即格式化。因此,要打印randomValue,您将使用

System.out.printf("%04d\n", randomValue);

如果程序的任何部分需要保留字符串以供用户交互,则应使用String.format,但无需更改存储randomValue的方式。

要将用户输入的内容与randomValue进行比较,您可以使用Integer.parseInt。所以你可以使用

int testValue;
try {
    testValue = Integer.parseInt(inputLine, 10);
} catch (NumberFormatException ex) {
    // The user typed in something that isn't a number.  Alert the user somehow, and make
    // him or her try again
}

将输入值作为int获取,只需将testValuerandomValue与==进行比较。