1

ランダムな4桁の数値を作成し、10進形式を使用して(#* 1000)+(#* 100)+(#* 10)+(#* 1)として出力しようとしています。たとえば、7956を生成するとします。それを分割して、(7 * 1000)+(9 * 100)+(5 * 10)+(6 * 1)として出力します。これまでのところ、これは私が持っているものです:

public static void main(String [] args)
{
    Random random = new Random();
    int number = random.nextInt(10000);


    DecimalFormat formatOne;
    formatOne = new DecimalFormat("(# * 1000) + (# * 100) + (# * 10) + (# * 1)");

    System.out.println("The random number was: " + number);
    System.out.println("Which is: " + formatOne.format( random.nextInt(10000) ) );


}

そのフォーマットだけでも使えると思っていたのですが、0はゼロを含む任意の数字なので、正しく印刷されません。私はそれを分割しようとしました、しかしそれは私が掛けている数からゼロを取り、それらを最初の数の終わりに置くだけで終わります。私はかなり低レベルのJavaクラスに属しており、まだループに到達していないので、これを可能な限り単純に保つことができれば、非常にありがたいです。助けてくれてありがとう!

4

1 に答える 1

4

DecimalFormatそのようには機能しません。

コードでそれを行う必要があります。

数値を文字列として取得し、必要な出力を構築するループでその文字を逆方向に(最後から最初に)繰り返すことを検討してください。

于 2012-09-16T20:14:11.593 に答える