我正在寻找一种在Java中将十六进制转换为ascii的方法。一个例子:
byte temps[] = new byte[4];
temps[0] = 0x74;
temps[1] = 0x65;
temps[2] = 0x73;
temps[3] = 0x74;
String foo = ..(temps);
System.out.print(foo);
那应该输出“test”。有人有想法吗?
我感谢你的每一次帮助!
答案 0 :(得分:5)
你的意思是String(byte[] bytes, String encoding)?
但请注意那些编码!你需要一组字节,你需要指定如何将它们编码为字符。您可以使用上面使用默认编码的版本,但(取决于您的应用程序)可能会让您感到悲伤。所以我通常指定一个编码(最常见的是UTF-8)。
我注意到你指定了字节到ASCII,所以我会明确指定ASCII编码Charset.US-ASCII
。不要依赖JVM运行的编码!
答案 1 :(得分:1)
String foo = new String(temps);