[英]Converting a byte[] to a String in Java
假设我们有一个byte[]
数组:
byte[] data = {10,10,1,1,9,8}
我想将这些值转换为十六进制字符串:
String arrayToHex = "AA1198"
我怎样才能做到这一点? 在IntelliJ中使用Java语言。 请记住,这是我编码的第一学期,所以我已经迷路了。
首先,我从这种方法开始:
public static String toHexString(byte[] data)
在我要解决的问题中,我们从用户输入中获取一个字符串,然后将其转换为byte []数组,然后必须从该字符串将其转换回为十六进制格式的字符串。 但是为了简化起见,我只是尝试输入自己的数组。 因此,这里有我的数组:
byte[] data = {10,10,1,1,9,8}
我知道如何只说一句就打印字节数组:
for (int i = 0; i < data.length; i++)
{
System.out.print(data[i]);
}
输出为:
10101198
但这显然不是我想要的,因为我必须将10s转换为As,并且我需要String类型,而不仅仅是输出。 对不起,我很模糊,但是我真的迷路了,准备放弃了!
这不是您通常要做的,并且仅适用于0到15的字节值。
byte[] data = {10,10,1,1,9,8};
StringBuilder sb = new StringBuilder();
for (byte b : data)
sb.append(Integer.toHexString(b));
String arrayAsHex = sb.toString();
您通常期望的是“ 0A0A01010908”,因此任何字节值都是可能的。
String arrayAsHex = DatatypeConverter.printHexBinary(data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.