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

ユーザーが入力した内容を比較するには、 Integer.parseIntrandomValueを使用できます。だからあなたは使うことができます

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

于 2013-02-13T00:34:05.197 に答える