0

重複の可能性:
Javaでゼロを含む左パディング整数

入力番号の長さに対して動的に先行ゼロを追加する必要があります。たとえば、10を入力すると、出力されます。

番号010203 04 05 06 07 08 09 10

その方法は、入力された数値の長さを取得し、その値を何らかの書式設定を使用してカウンターに適用することだと思いますが、それを実行する最善の方法はわかりません。

これは私がこれまでに持っているものです..(私はプログラミングに非常に慣れていません)

    public static void main(String[] args) {
    int numbers;
    int counter = 1;
    int padlength;

    Scanner ngrabber = new Scanner(System.in);
    System.out.println("Please enter numbers to output number");
    numbers = ngrabber.nextInt();


                System.out.println("Numbers");
                while (counter <= numbers)          
                {
                    padlength = String.valueOf(numbers).length();
                    System.out.println(counter);
                    counter++;
                }


        }       
    }   
4

3 に答える 3

2

ここに示すように、Javaのprintfスタイル関数を使用する必要があります

System.out.printf("%02d ",counter);

構文が明確でない限り、2は、印刷された数値の長さが2以上であることを確認し、入力された数値の長さが2未満の場合は0平均パッドを使用します。0


編集:番号を動的に変更するには、これを試してください。

padlength = String.valueOf(numbers).length();
System.out.printf(String.format("\%0%dd " ,padlength),counter);
于 2013-01-18T02:21:30.377 に答える
2

ここでは、パディングにFormatterprintfを使用するものを使用できます。

System.out.printf("%02d ", counter);
于 2013-01-18T02:21:38.117 に答える
0

printfJavaの正解です。脳死した環境(たとえば、Windowsコマンドスクリプト、別名バッチファイル)でこれを行う必要があることに気付いた場合は、次の方法があります。

上限の数値を文字列に変換します。例:10 –> "10"
その文字列の長さを取得します。1文字にstrlen("10") = 2
ゼロ文字( )を追加します( ): その文字列を数値に変換します: "100" –>100 フォーマットする数値ごとに:上記の数値を追加し(1 + 100 = 101)、文字列に変換し(101 –> "101")、最初の文字を削除します( "101" –> "01")。01strcat("1","0","0") = "100"

はい、これは応急修理です。誰かがWindowsでそれを行うためのより良い方法を知っていますか?

于 2013-01-18T02:49:52.447 に答える