繁体   English   中英

在Java中将byte []转换为字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM