2011-10-19 11 views
1

整数型の数値を左の埋め込みゼロの任意の基数にフォーマットする標準的な方法がJavaにあるのだろうかと思います。 など。基数32の場合、4文字の長さに詰め、30の場合は "000t"のような文字列を取得したい、300の場合は "008z"(tと8zは必ずしもベース-32の表記は30と300ですが、これは単なる例です)。任意の基数のパッド付きフォーマット

答えて

1

整数を必要な基数の文字列に変換し、文字列フォーマッタを使用して出力文字列を埋め込みます。文字列フォーマッタは空白で埋められますので、0に変換する必要があります。この場合30toString

int num = 300; 
String numString = Integer.toString(num, 30); 

String padded = String.format("%1$#4s", numString).replace(' ', '0'); // "00ao" 

2番目の引数が基数です:

は、ここでの例です。

String.formatの最初の引数は、フォーマット文字列で、これはhereから取得しました。あなたが最も気にかけているのは、文字列の中にある4です。文字列に入れたい文字の総数です。

+0

1つの追加:toStringが受け入れる最大基数は36です。 –

+0

提案:フォーマット文字列から#を削除するか、[痛みの世界に入る](https://issues.apache.org/jira/browse/ SSHD-104) – dribnet