最初に、長さが入力された数値の倍数になるまで、結果の数値に 0 が付けられたままになります ( fx int a = 3
-> 数値の長さは数値 3 の倍数でなければなりません)。次に、数を長さのセクションに分割する必要がありますa
(つまり3
)。
例えば:
で始まるint a = 3
番号: 9056737152
数値が先行ゼロなしで分割される場合、結果のセクションの 1 つの長さは 1 になります。
9056737152 -> 905 673 715 2
であるため1 <> a
、分割によってすべてのセクションの長さが になるまで、左側にゼロを追加する必要がありますa
。つまり、
009056737152 -> 009 056 737 152
009056737152 -> 009 (セクション 1 ) 056 (セクション 2 ) 737 (セクション 3 ) 152 (セクション 4 )
次に、交互のセクションを逆にする必要があります。次に、すべてのセクションを一緒に追加します。たとえば、セクション2と4を逆にします。
251 + 737 + 650 + 009 = 1647
何か案は ?私は最初のステップにいて、ゼロを追加しようとしています:
int num = 5;
DecimalFormat df = new DecimalFormat("00000");
System.out.println(df.format(zahl));
問題は、数値5
を静的にできないことです。
別の方法:
int number = 9;
String str = String.format("%04d", 9); // 0009
System.out.printf("original number %d, numeric string with padding : %s", 9, str);
- % は、フォーマット命令であることを示します
- 0 は、ゼロで埋めることを示すフラグです
- 4 は、フォーマットされた文字列の長さを示します。これにより、適切な数のゼロが追加されることが保証されます
- d は 10 進数です。つまり、次の引数は整数値 (byte、char、short、int、long など) である必要があります。
04 (フォーマット -- から"%04d"
) を整数に変更する必要がありa
ます。