本帖最后由 oath 于 2013-8-5 09:13 编辑
楼主你好,呵呵, 楼主的帖子中有几个小疑点1、Array应该是Arrays吧,Array没有toString这个方法o,2可能因为电脑的原因,我的电脑上用eclipse“你好”转成的字节数组不一样呵。
正题
Arrays中的toString(byte[] b)方法,只是将字节数组表示出来的一种方式,没有将它解码
解码可以用String类中的构造函数进行
看下面的代码,- class ToString
- {
- public static void main(String[] args)
- {
- String s = "你好";
- byte[] b1 =s.getBytes();// 编码;
-
- //1
- System.out.println("b1.length:"+b1.length);//
- //2 打印数组中的元素
- for(int i=0;i<b1.length;i++)
- System.out.print("b1"+"["+i+"]"+"="+b1[i]+"; ");
- //打印结果:b1[0]=-60; b1[1]=-29; b1[2]=-70; b1[3]=-61;
-
- /*3 Arrays类中的toString(byte[] b)方法返回的是b的一种形象的表示形式,这个表示形式是:将b中的元素用“[]”括起来,并将每个元素用“,”分隔
- 。并没有将b解码*/
- System.out.println("\nArrays.toString(b1):"+Arrays.toString(b1));
-
- //4 String类中有一个构造方法,传入字节数组,可以对其进行解码,下面这句的输出结果是“你好”。
- System.out.println("new String(byte[] b)):"+new String(b1));
- }
- }
复制代码 |