不工作,我總是得到一個異常爲十六進制格式說明在java中
Exception in thread "main" java.util.FormatFlagsConversionMismatchException: Conversion = h, Flags = 0
在這行代碼
String.format("%02H", data[i]);
數據數組保存字符變量。
我想打印十六進制格式這些字符像09,不僅9.
不工作,我總是得到一個異常爲十六進制格式說明在java中
Exception in thread "main" java.util.FormatFlagsConversionMismatchException: Conversion = h, Flags = 0
在這行代碼
String.format("%02H", data[i]);
數據數組保存字符變量。
我想打印十六進制格式這些字符像09,不僅9.
我認爲你需要使用String.format("%02X", (int)data[i]);
代替。
請查看Java code To convert byte to Hexadecimal的答案,以便對該主題進行擴展討論。
02X不起作用 – 2012-04-22 23:22:59
是的。實際上,轉換字符'H'意味着參數的哈希碼,並且該轉換未定義標誌'0'。字符類型也不支持'0'標誌。將其轉換爲int! – 2012-04-22 23:23:16
我解決了它。謝謝。該字符需要鑄造到字節 – 2012-04-22 23:26:57
「x」是十六進制。正如文檔中所述。 – 2012-04-22 23:09:18