字节数组到十六进制字符数组的转换[重复]
Posted
技术标签:
【中文标题】字节数组到十六进制字符数组的转换[重复]【英文标题】:Byte array to hex char array conversion [duplicate] 【发布时间】:2015-05-05 11:07:57 【问题描述】:我的字节数组是这样的
byte[] x = (byte) 0xff , (byte) 0x80 ;
如何将其转换为 char 数组 char[] y 其中:-
y[0]='f';
y[1] ='f' and so on
【问题讨论】:
... 你的“等等”是什么意思?想必你并不是说数组中的每个元素都是'f'
,它看起来就是这个样子。
你想把它转换成 'f', 'f', '8', '0'
吗?
@Thilo 为什么将其标记为重复?问题是关于转换为 char 数组。在java中转换为字符串不等于转换为char数组。尤其是涉及到密码的时候。
【参考方案1】:
这应该对你有帮助:
byte[] data = (byte) 0xff , (byte) 0x80 ;
String text = new String(data, "UTF-8");
char[] chars = text.toCharArray();
【讨论】:
这不会产生 'f', 'f', '8', '0'
嗯,没有指定,所以我假设他想将字节转换为相应的字符值......
是的。这个问题后来澄清了。
感谢 Thilo 的链接,共享代码对我有用。字节[] x = (字节)0x80,(字节)0x60; StringBuilder sb = new StringBuilder(x.length * 2); for(byte b: x) sb.append(String.format("%02x", b & 0xff));字符串 s = sb.toString(); char[] 数组 = s.toCharArray();
密码不安全。以上是关于字节数组到十六进制字符数组的转换[重复]的主要内容,如果未能解决你的问题,请参考以下文章