我需要生成一个4位数的数字,从0000到9999,但似乎无法这样做。我有这段代码,但是它将在某个时候生成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);
}

最佳答案

您只需要使用表达式来格式化随机值

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与==进行比较。

09-29 22:04