Java 生成0000到9999之间的随机数

Java 生成0000到9999之间的随机数,java,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() {

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

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

String.format("%04d", randomValue);
如果
randomValue
为762,则调用
String.format
会根据需要返回“0762”


编辑:回应下面的评论

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

System.out.printf("%04d\n", randomValue);
如果程序的任何部分需要保留字符串以供用户交互,但无需更改存储
随机值的方式,则应使用
String.format

要将用户键入的内容与随机值进行比较,可以使用。所以你可以用

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进行比较,只需将
testValue
randomValue
与==。

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

String.format("%04d", randomValue);
如果
randomValue
为762,则调用
String.format
会根据需要返回“0762”


编辑:回应下面的评论

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

System.out.printf("%04d\n", randomValue);
如果程序的任何部分需要保留字符串以供用户交互,但无需更改存储
随机值的方式,则应使用
String.format

要将用户键入的内容与随机值进行比较,可以使用。所以你可以用

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,只需将
testValue
randomValue
与==”进行比较即可。

无需更改随机代码;你需要改变打印方式,有什么问题吗?762在给定的间隔内。你需要左零吗?比如:0762?你为什么讨厌762?这就像是我最喜欢的数字之一。(我想你也需要添加
1
)@DaveNewton我相信解决办法是将
NUMBER\u/u值设置为10000,因为0是
randomValue
的合法值。你不需要更改随机代码;你需要改变打印方式,有什么问题吗?762在给定的间隔内。你需要左零吗?比如:0762?你为什么讨厌762?这就像是我最喜欢的数字之一。(我想你也需要添加
1
)@DaveNewton我认为解决办法是将
NUMBER\u值设置为10000,因为0是
randomValue
或printf的合法值。但是您需要
%04d
。是否仍将其保留为整数?例如,我的程序生成一个数字0000-9999,然后我输入数字试图猜它。或printf。但是您需要
%04d
。是否仍将其保留为整数?例如,我的程序生成一个数字0000-9999,然后我输入数字试图猜测它。