0

最初に、長さが入力された数値の倍数になるまで、結果の数値に 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 )


次に、交互のセクションを逆にする必要があります。次に、すべてのセクションを一緒に追加します。たとえば、セクション24を逆にします。

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ます。

4

1 に答える 1