java - 生成 0000 到 9999 之间的随机数

标签 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);
}  

最佳答案

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

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

关于java - 生成 0000 到 9999 之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844477/

相关文章:

java - 使用增强的 for 循环打印数组列表 - 错误 : cannot find symbol and variable already defined in method

Java - 如何在 web 中获取 XML 内容

java - org.springframework.ui.velocity.VelocityEngineFactoryBean 发生了什么?

java - 如何通过 javax.xml.transform.Transformer.transform() 调用指定 sortBy?

java - Spring JPA 中的方法名称太长

java - 如何使用 oozie 协调器延迟工作流操作

java - 如何从 Java Swing 中的 JTextField 中检索值?

java - 在静态布局 View 上实现 OnDraw 方法

java - Big O - 检查方法然后返回方法与将方法分配给变量并返回变量?

java - 使用线程更改数组中数据的有效方法