2013-07-21 45 views
1

我想用h格式說明符格式化一個整數,同時向它添加前導零(如果小於4位數)。作爲在添加前導零時用%h格式化整數

//crac is int with some value 
String formated=String.format("%04h ", carc);//works fine if I use d instead of h but I want h 

它給人的follwoing例外

java.util.FormatFlagsConversionMismatchException: Conversion = h, Flags = 0 

,但它沒有給出例外,而我刪除前導零,如

String formated=String.format("%4h ", carc); 

我該如何解決呢?雖然我想添加前導零。請參閱Add leading zeros to number 我想使用begray的解決方案,它看起來很完美。

回答

0

你不能在h格式說明符中使用0標誌,因爲沒有任何理由。我會提交一個錯誤報告。如果你想真的這樣做,你可以使用:

String formatted = String.format("%04d", obj.hashCode()); 
+0

等一下,你甚至知道%h做什麼嗎?它輸出參數的hashCode。 – tbodt

+0

但它給了我十進制值,我希望在一步的十六進制,所以沒有奏效,但以下工作'formatted = String.format(「%04x」,((對象)carc).hashCode()) )'。我知道我在做什麼。但是,我如何能夠像上面那樣巧妙地做到這一點,並有一個演員和一個函數調用?作爲h格式說明符的 –

+0

以十六進制給出散列碼。 –