黑马程序员技术交流社区

标题: 将字节数组转换成字符串 转换完后的输出结果问题! [打印本页]

作者: 马林贺    时间: 2012-6-1 12:19
标题: 将字节数组转换成字符串 转换完后的输出结果问题!
  1. //将字节数组转换成字符串
  2. //创建数组
  3. byte []ch1={1,2,3,4,5,6,7,89,};
  4. //循环输出
  5. for(int i=0;i<ch1.length;i++)
  6. {
  7. Print(ch1[i]);
  8. }
  9. //字符串接收 转换对象输出
  10. String stri=new String(ch1);
  11. Print(stri);
复制代码

jieguo.jpg (5.38 KB, 下载次数: 91)

jieguo.jpg

作者: 梁小波    时间: 2012-6-1 12:53
,6,7,89,};的89后面貌似没有逗号呀,{:soso_e127:}有逗号就有问题了。
作者: 王渠    时间: 2012-6-1 13:10
本帖最后由 王渠 于 2012-6-1 13:12 编辑
  1. byte []ch1={1,2,3,4,5,6,7,89,};
  2. //循环输出
  3. for(int i=0;i<ch1.length;i++)
  4. {
  5. Print(ch1[i]);
  6. }
  7. //字符串接收 转换对象输出
  8. String stri=new String(ch1);
  9. Print(stri);
复制代码
可以告诉你,转换后的输出是没有问题的,因为你输入的是一个数组,
如果是这样   
char data[] = {'1', '2', '3'};
String str = new String(data);
输出结构就会是123
如果是LZ代码中那样,
会去查对应码表的数值,因为89对应的是大写字母Y,所以最后显示了一个Y
作者: 王渠    时间: 2012-6-1 14:20
ASCII码字集符,白度就好了
作者: 马林贺    时间: 2012-6-1 14:22
王渠 发表于 2012-6-1 14:20
ASCII码字集符,白度就好了

懂了  谢谢了
作者: 吴扬    时间: 2012-6-2 11:31
因为你定义的是一个byte类型的数组,并不是char类型的数组,所以new String(ch1)这句话会去码表中查找这些元素所对应的值,所以显示出来就类似于乱码了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2