我通过执行
将字节数组转换为字符串String s = encryptedBytes1.toString();
String gh = convertStringToHex(s);
然后我在屏幕gh
上打印,这是它返回的十六进制形式:
gh:[B@5985910
这是函数convert
public static String convertStringToHex(String str){
char[] chars = str.toCharArray();
StringBuffer hex = new StringBuffer();
for(int i = 0; i < chars.length; i++){
hex.append(Integer.toHexString((int)chars[i]));
}
return hex.toString();
}
任何人都可以帮我打印十六进制表单字符串吗?
答案 0 :(得分:2)
通常,您可以使用以下函数转换字符串和十六进制值(数字):
String hexString1 = "0x20";
Integer integer = Integer.decode(hexString); // is 32
String hexString1 = String.toHexString(integer); // is "20"
现在你需要迭代你的byteArray / String。
编辑:在您指定问题时,请在SO上查看此答案。我想这是同样的问题:Converting A String To Hexadecimal In Java答案 1 :(得分:0)
encryptedBytes1.toString()为您提供object的字符串表示形式,因为所有数组都是Java中的对象,它不会将字节数组转换为字符串。
我认为您没有正确地将字节数组转换为String。这适合我。
byte encryptedBytes1[] = "ABCDEFGHIK".getBytes();
String aux = new String(encryptedBytes1);
System.out.println(convertStringToHex(aux));
41 42 43 44 45 46 47 48 49 4b