問題has been answered for integers printed in decimal format零,但我正在尋找一個優雅方式做整數同樣在非十進制格式(如二進制,八進制,十六進制)。左填充整數(非十進制格式)在Java
這樣的字符串的生成是容易的:
String intAsString = Integer.toString(12345, 8);
將創建一個String與整數值12345的八進制represenation但如何字符串已經像10位數字,除了計算對其進行格式化,以便需要零的數量並手工組裝一個新的字符串。
一個典型的用例是創建具有固定位數(如16,32,...)的二進制數字,其中人們希望所有數字包括前導零。
「優雅」解決方案的意思是庫函數。我認爲沒有比計算所需的零和預串聯它們更優雅的解決方案。 無論如何,如果有一個數學技巧/算法來做你想做的事情,它將是不同的二進制和八進制和十六進制... – pakore
@pakore - 是的,你是對的,一些'庫'功能已經存在在Java API中對我來說會是'最優雅的') - 我只是討厭一次又一次地重新實現這個填充代碼。 –
好吧,看看NumberFormat類,用方法填充OctalFormat,HexFormat和BinaryFormat類,創建一個特徵提議,提交你的代碼,等待幾個月,升級你的庫,然後你將擁有它作爲庫函數:)。 或者您可以爲您的項目創建自己的庫助手:P – pakore