Java byte[]字节数组转换为String字符串的注意事项
2016-10-21 17:57
811 查看
Java byte[]字节数组转换为String字符串的注意事项
一、toString()
开始我想当然的使用toString()方法进行转换,结果如下:
[B@1b67f74
乍一看就是“乱码”。其实这是hashcode编码,JDK源码如下:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
二、new String()
String target = new String(byte[] 字节数组对象)
JDK源码:
public String(byte bytes[]) {
this(bytes, 0, bytes.length);
}
public String(byte bytes[], int offset, int length) {
checkBounds(bytes, offset, length);
char[] v = StringCoding.decode(bytes, offset, length);
this.offset = 0;
this.count = v.length;
this.value = v;
}
综上:
对于byte[]字节数组采用toString()方法是行不通的。
正确的方法是使用byte[]数组做参数,新建一个String对象。
一、toString()
开始我想当然的使用toString()方法进行转换,结果如下:
[B@1b67f74
乍一看就是“乱码”。其实这是hashcode编码,JDK源码如下:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
二、new String()
String target = new String(byte[] 字节数组对象)
JDK源码:
public String(byte bytes[]) {
this(bytes, 0, bytes.length);
}
public String(byte bytes[], int offset, int length) {
checkBounds(bytes, offset, length);
char[] v = StringCoding.decode(bytes, offset, length);
this.offset = 0;
this.count = v.length;
this.value = v;
}
综上:
对于byte[]字节数组采用toString()方法是行不通的。
正确的方法是使用byte[]数组做参数,新建一个String对象。
相关文章推荐
- java里面byte数组和String字符串怎么转换
- java里面byte数组和String字符串怎么转换
- [Java]_[初级]_[utf8编码的byte[]数组转换为String时要注意的问题]
- [Java]_[初级]_[utf8编码的byte[]数组转换为String时要注意的问题]
- [Java]_[初级]_[utf8编码的byte[]数组转换为String时要注意的问题]
- java里面byte数组和String字符串怎么转换
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
- java里面byte数组和String字符串怎么转换
- c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
- java中byte数组和String字符串怎么相互转换?(string 转 byte[]和byte[] 转 string)
- java里面byte数组和String字符串怎么转换
- 使用Java来实现String字符串和Byte[]数组的转换
- 字符串String转换成字节数组 byte[]的表现形式
- 字符串 (string)与字节数组(byte[])之间的转换
- JAVA里面关于byte数组和String之间的转换问题
- 在java中怎么把字节数组转换成二进制字符串
- MSDN将字节数组转换为十六进制值字符串时 Byte 的用法
- 深入 JAVA里面关于byte数组和String之间的转换问题
- JAVA里面关于byte数组和String之间的转换问题
- JAVA里面关于byte数组和String之间的转换问题