如何在 Java 中以十六进制字符串转换字节数组
在本篇文章中,我们将学习如何在 Java 中将字节数组转换为十六进制字符串。
HEX_ARRAY[]
方法将字节数组转换为 Java 中的十六进制字符串
我们将从第一个方法开始,对于此转换,我们将使用由所有可能的十六进制值组成的 HEX_ARRAY[]
。此方法比其他任何方法都快。
示例代码:
public class SimpleTesting {
char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
byte b[]= new byte[2];
b[0] = 20;
b[1] = 10;
char[] hexChars = new char[b.length * 2];
for (int j = 0; j < b.length; j++) {
int v = b[j] & 0xFF;
hexChars[j * 2] = HEX_ARRAY[v >>> 4];
hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
}
System.out.println(hexChars);
}
}
输出:
140A
Hex.encodeHexString()
方法将 Java 中的字节数组转换为十六进制字符串
在 Java 中将字节数组转换为十六进制字符串的第二种方法是 Hex.encodeHexString()
方法。由于它是一个 apache
的公共库,因此需要先将 apache.commons.codec.binary.Hex()
方法导入编译器中。
示例代码:
import java.util.Arrays;
import org.apache.commons.codec.binary.Hex;
public class SimpleTesting {
public static void main(String[] args) {
byte[] byteArray = new byte[]
{'S', 'i', 'm', 'p', 'l', 'e', 'T', 'e', 's',
't', 'i', 'n', 'g'};
System.out.println("Byte Array: ");
System.out.println(Arrays.toString(byteArray));
System.out.println("Hex String Conversion: " +
Hex.encodeHexString(byteArray));
}
}
输出:
Byte Array: Simple Testing
Hex String Conversion: 53696d706c652054657374696e67
DatatypeConverter()
方法以 Java 中的十六进制字符串转换字节数组
另一种方法是 Java 中的 javax.xml.bind.DatatypeConverter.printHexBinary()
方法。该方法获取字节并将其从数组转换为 Hex
。
示例代码:
import java.util.Arrays;
public class SimpleTesting {
public static void main(String[] args) {
byte byteArray[] =
{(byte)00, (byte)10, (byte)20, (byte)30, (byte)40};
String hexString =
javax.xml.bind.DatatypeConverter
.printHexBinary(byteArray);
System.out.println("Byte Array: ");
System.out.println(Arrays.toString(byteArray));
System.out.println("Hex String Conversion: "
+ hexString);
}
}
输出:
Byte Array:
[0, 10, 20, 30, 40]
Hex String Conversion: 000A141E28
用 append(.format)
方法将 Java 中的字节数组转换为十六进制字符串
我们可以使用的另一种方法是在 Java 中使用 stringBuilder
中包含的 append(.format)
。它的工作原理是将字节数组中的每个单个值转换为相应的十六进制字符串。
示例代码:
public class SimpleTesting {
public static void main(String[] args) {
byte a[]= new byte[2];
a[0] = 20;
a[1] = 10;
StringBuilder sb = new StringBuilder(a.length * 2);
for(byte b: a)
sb.append(String.format("%02x", b));
System.out.println(sb);
}
}
输出:
140a
相关文章
如何在 Java 中延迟几秒钟的时间
发布时间:2023/12/17 浏览次数:217 分类:Java
-
本篇文章主要介绍如何在 Java 中制造程序延迟。本教程介绍了如何在 Java 中制造程序延时,并列举了一些示例代码来了解它。
如何在 Java 中把 Hashmap 转换为 JSON 对象
发布时间:2023/12/17 浏览次数:187 分类:Java
-
它描述了允许我们将哈希图转换为简单的 JSON 对象的方法。本文介绍了在 Java 中把 Hashmap 转换为 JSON 对象的方法。我们将看到关于创建一个 hashmap,然后将其转换为 JSON 对象的详细例子。
如何在 Java 中按值排序 Map
发布时间:2023/12/17 浏览次数:171 分类:Java
-
本文介绍了如何在 Java 中按值对 Map 进行排序。本教程介绍了如何在 Java 中按值对 Map
进行排序,并列出了一些示例代码来理解它。
如何在 Java 中打印 HashMap
发布时间:2023/12/17 浏览次数:192 分类:Java
-
本帖介绍了如何在 Java 中打印 HashMap。本教程介绍了如何在 Java 中打印 HashMap 元素,还列举了一些示例代码来理解这个主题。
在 Java 中更新 Hashmap 的值
发布时间:2023/12/17 浏览次数:146 分类:Java
-
本文介绍了如何在 Java 中更新 HashMap 中的一个值。本文介绍了如何在 Java 中使用 HashMap 类中包含的两个方法-put() 和 replace() 更新 HashMap 中的值。
Java 中的 hashmap 和 map 之间的区别
发布时间:2023/12/17 浏览次数:79 分类:Java
-
本文介绍了 Java 中的 hashmap 和 map 接口之间的区别。本教程介绍了 Java 中 Map 和 HashMap 之间的主要区别。在 Java 中,Map 是用于以键值对存储数据的接口,
在 Java 中获取用户主目录
发布时间:2023/12/17 浏览次数:218 分类:Java
-
这篇文章向你展示了如何在 Java 中获取用户主目录。本教程介绍了如何在 Java 中获取用户主目录,并列出了一些示例代码以指导你完成该主题。
Java 中 size 和 length 的区别
发布时间:2023/12/17 浏览次数:179 分类:Java
-
这篇文章教你如何知道 Java 中大小和长度之间的区别。本教程介绍了 Java 中大小和长度之间的区别。我们还列出了一些示例代码以帮助你理解该主题。
Java 中的互斥锁
发布时间:2023/12/17 浏览次数:111 分类:Java
-
了解有关 Java 中互斥锁的一切,在计算机科学领域,互斥或互斥被称为并发控制的属性。每台计算机都使用称为线程的最小程序指令序列。有一次,计算机在一个线程上工作。为了更好地理解,