人們可能會遇到需要將位元組數組轉換為對應的十六進位值的情況。 Java 提供了一種簡單的方法來有效地實作此轉換。
將位元組數組轉換為十六進位的最簡潔方法是利用StringBuilder 類別:
byte[] bytes = {-1, 0, 1, 2, 3 }; StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02X ", b)); } System.out.println(sb.toString());
此程式碼迭代數組中的每個程式碼位元組,將其轉換為帶有前導零(X) 的十六進位字串,並將其附加到字串產生器。產生的字串包含由空格分隔的十六進位值。
某些場景可能需要將十進位值的字串陣列轉換為十六進位字串。這可以透過以下方式實現:
String[] arr = {"-1", "0", "10", "20" }; for (int i = 0; i < arr.length; i++) { arr[i] = String.format("%02x", Byte.parseByte(arr[i])); } System.out.println(java.util.Arrays.toString(arr));
此程式碼將陣列中的每個字串轉換為位元組,然後使用 String.format 方法建立帶有前導零的十六進位字串。
請注意,也可以使用 Integer.toHexString(int),但在使用負位元組值時要小心符號擴充。另外,String.format 解決方案更可靠、更靈活。
以上是Java中如何有效率地將位元組數組轉換為十六進位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!