首頁 >Java >java教程 >Java中如何有效率地將位元組數組轉換為十六進位?

Java中如何有效率地將位元組數組轉換為十六進位?

Linda Hamilton
Linda Hamilton原創
2024-11-29 02:49:09452瀏覽

How to Efficiently Convert a Byte Array to Hexadecimal in Java?

在Java 中將位元組數組轉換為十六進位

人們可能會遇到需要將位元組數組轉換為對應的十六進位值的情況。 Java 提供了一種簡單的方法來有效地實作此轉換。

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn