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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何超 中级黑马   /  2013-11-17 16:31  /  868 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何超 于 2013-11-17 19:09 编辑
  1. import java.util.*;
  2. class A
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 String s="你好";

  7.                 byte[] b1=s.getBytes();

  8.                 System.out.println(new String(b1));
  9.         }
  10. }
复制代码
就这个代码  如果是这样的 那么结果是输出你好  如果System.out.println(new String(b1))改成了 (Arrays.toString(b1))
结果就是 [-60, -29, -70, -61]
为什么?  这两个都是把字符数组编程字符串啊  为什么结果是这样的?new String()是解码但是Array.toString()系统说明也是转换成字符串啊
难道Array.toString是将数组里存放的元素对应的编码表里的数字变成字符串?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 骚年,其实你可以做得更好~

查看全部评分

2 个回复

倒序浏览
看JDK文档,很详细了
  1. public static String toString(byte[] a)返回指定数组内容的字符串表示形式。字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(byte) 转换为字符串。如果 a 为 null,则返回 "null"。

  2. 参数:
  3. a - 返回其字符串表示形式的数组
  4. 返回:
  5. a 的字符串表示形式
  6. 从以下版本开始:
  7. 1.5
复制代码

评分

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

查看全部评分

回复 使用道具 举报
好好研究一下帮助文档  你会明白的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马