2011-10-19 30 views
1

我想知道在Java中是否有一種標準的方式來將整數編碼爲具有左填充零的任意基數。 例如基數爲32,填充到4個字符長度,如果我有一個數字30,我想得到一個像「000t」的字符串或者如果我有300我應該得到「008z」(t和8z不一定對應於基數-30和30的符號,這只是一個例子)。任意基數填充格式

回答

1

將整數轉換爲您需要的基數的字符串,然後使用字符串格式化程序填充輸出字符串。字符串格式化程序將填充空格,然後您需要將其轉換爲零。

下面是一個例子:

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

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

的第二個參數toString是基數:30在這種情況下。

String.format的第一個參數是格式字符串,我從here獲取。您最關心的值是位於字符串中間的4:這是您希望字符串中的字符總數。

+0

一個補充:toString接受的最大基數是36. –

+0

建議:從格式字符串中刪除#或者您可能[進入痛苦的世界](https://issues.apache.org/jira/browse/ SSHD-104) – dribnet