A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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, 下载次数: 90)

jieguo.jpg

评分

参与人数 1技术分 +1 收起 理由
冯越 + 1

查看全部评分

5 个回复

倒序浏览
,6,7,89,};的89后面貌似没有逗号呀,{:soso_e127:}有逗号就有问题了。

点评

不是逗号的问题,你看输出结果啊  发表于 2012-6-1 13:42
回复 使用道具 举报
本帖最后由 王渠 于 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 13:48

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1 赞一个!

查看全部评分

回复 使用道具 举报
ASCII码字集符,白度就好了
回复 使用道具 举报
王渠 发表于 2012-6-1 14:20
ASCII码字集符,白度就好了

懂了  谢谢了
回复 使用道具 举报
因为你定义的是一个byte类型的数组,并不是char类型的数组,所以new String(ch1)这句话会去码表中查找这些元素所对应的值,所以显示出来就类似于乱码了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马