2012-04-22 70 views
-2

不工作,我總是得到一個異常爲十六進制格式說明在java中

Exception in thread "main" java.util.FormatFlagsConversionMismatchException: Conversion = h, Flags = 0 

在這行代碼

String.format("%02H", data[i]); 

數據數組保存字符變量。

我想打印十六進制格式這些字符像09,不僅9.

+1

「x」是十六進制。正如文檔中所述。 – 2012-04-22 23:09:18

回答

3

我認爲你需要使用String.format("%02X", (int)data[i]);代替。

請查看Java code To convert byte to Hexadecimal的答案,以便對該主題進行擴展討論。

+0

02X不起作用 – 2012-04-22 23:22:59

+0

是的。實際上,轉換字符'H'意味着參數的哈希碼,並且該轉換未定義標誌'0'。字符類型也不支持'0'標誌。將其轉換爲int! – 2012-04-22 23:23:16

+0

我解決了它。謝謝。該字符需要鑄造到字節 – 2012-04-22 23:26:57