JAVA里面关于byte数组和String之间的转换问题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JAVA里面关于byte数组和String之间的转换问题把byte转化成string,必须经过编码。例如下面一个例子:importjava.io.UnsupportedEncodingException;publicclasstest{publicstaticvoidmain(Stringg[]){Strings=12345abcd;byteb[]=s.getBytes();Stringt=b.toString();System.out.println(t);}}输出字符串的结果和字符串s不一样了.经过以下方式转码就可以正确转换了:publicclasstest{publicstaticvoidmain(Stringg[]){Strings=12345abcd;byteb[]=s.getBytes();try{Stringt=newString(b);System.out.print(t);}catch(Exceptione){e.printStackTrace();}}}Stringstr=String;byte[]byte1=str.getBytes();Stringstr1=newString(byte1);byte[]byte2=str1.getBytes();Stringstr2=newString(byte2);System.out.println(str+str);System.out.println(byte1+byte1);System.out.println(str1+str1);System.out.println(byte2+byte2);System.out.println(str2+str2);-------------------------------------输出结果strStringbyte1[B@192d342str1Stringbyte2[B@6b97fdstr2String想请教为什么两个byte输出的不一样呢?Stringstr=String;byte[]byte1=str.getBytes();Stringstr1=newString(byte1);byte[]byte2=str1.getBytes();----------注意byte1是str得到的byte数组,而byte2是另一个字符串str1得到的数组他们本身也是两个对象直接打印实际上调用的是toString()方法,而toString()的默认实现是打印对象类型+hashCode()[B表示byte数组@表示之后的是地址后面跟着的是hashCode,其实就是其虚拟机地址所以这个结果也就是顺理成章了.

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功