生成0000到9999之间的随机数

Cas*_*nos 0 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);
}  
Run Code Online (Sandbox Code Playgroud)

Ada*_*cin 5

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

String.format("%04d", randomValue);
Run Code Online (Sandbox Code Playgroud)

如果randomValue是762,则调用String.format返回"0762",如期望的那样.


编辑:回应下面的评论

请留下randomValue整数.您只想将此代码用于用户交互,即格式化.所以打印randomValue你会使用

System.out.printf("%04d\n", randomValue);
Run Code Online (Sandbox Code Playgroud)

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
}
Run Code Online (Sandbox Code Playgroud)

得到键入的值作为一个int,只是比较testValuerandomValue与==.