黑马程序员技术交流社区

标题: 大哥哥大姐姐们,菜鸟的我想问下,下面的代码有什么错误? [打印本页]

作者: 大夢未觉    时间: 2014-8-1 16:06
标题: 大哥哥大姐姐们,菜鸟的我想问下,下面的代码有什么错误?
byte[] arr = {-60,-29,70,-61,-60,-29,-71,-61};
String s = new String(arr,"UTF-8");
作者: 十指紧扣    时间: 2014-8-1 16:16
啊哈哈哈哈哈哈哈哈哈哈!!!!!
作者: 李彦来    时间: 2014-8-1 16:44
首先需要抛出异常:
public static void main(String[] args)throws Exception 因为在程序运行时,编码转换可能出现不支持编码的异常;
其次:你的字节数组运行后的结果为:??F???? 这是因为你输入的数组中,只用70被UTF-8编码格式认识.也就是 F (UTF-8内部包含了ASCII 码表,ASCII码表里,70就是F)
最后:如果全是负数,byte[] arr = {-60,-29,-70,-61,-60,-29,-71};UTF-8也会去查编码表找字符,不巧的是??????

我给你一个串你试试吧:byte[] arr={-28,-67,-96,-27,-91,-67};
我也只会这么多了...
作者: 大夢未觉    时间: 2014-8-1 19:04
李彦来 发表于 2014-8-1 16:44
首先需要抛出异常:
public static void main(String[] args)throws Exception 因为在程序运行时,编码转换可 ...

谢谢你的回答,还是木有怎么看懂,表示这句是上课时做的笔记,明明老师上课能够正常运行的,我也很确定木有抄错,但。。。:'(
作者: 阿温    时间: 2014-8-1 19:31
你使用Eclipse在错误的地方按F2就知道了,二楼说的对,你使用这个构造函数会抛出异常 UnsupportedEncodingException.所以需要在主函数throws UnsupportedEncodingException
作者: 咸菜+萝卜干    时间: 2014-8-1 20:51
把个异常抛一下嘛!
  1. class StringDemo
  2. {
  3.         public static void main(String[] args)throws Exception
  4.         {
  5.                 byte[] arr = {-60,-29,70,-61,-60,-29,-71,-61};
  6.                 String s = new String(arr,"UTF-8");
  7.         }
  8. }
复制代码
{:3_47:}
作者: ddewym123    时间: 2014-8-1 21:20
@李彦来回答正确。  
另外,我很好奇lz的年龄~;P




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