0

我需要生成一个从 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);
}  
4

1 回答 1

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

于 2013-02-13T00:34:05.197 回答