我需要生成一个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形式获取输入值,只需将
testValue
和randomValue
与==进行比较。