"?" 不是问号,是ASCII为194的字符,在这里是这样显示的也就是说,大于127 的字符,取到ascii都不对可能是以为符号位的问题,但不知道怎么解决??

解决方案 »

  1.   

    你在搞什么,在试一下!
    byte[] a = new byte[1] ;//这样才是定义了一个长度为1的字节数组
    a[0] = "?".getBytes(); //下标从0开始!
    int i = a[0] ;   //再输出试试1
    应该行了!
      

  2.   

    byte的取值范围是-128到127,因为你是194所以用byte根本无法表示。因此能够使用的是char,char在java中是一个32位的足够表示啦。同时String中有toCharArray()这个函数返回char[]
    程序改为如下可以:
    char[] a = "?".toCharArray(); 
    int i=a[0];byte[] a = new byte[0]这一句没有必要。因为返回的是引用没有必要再申请一个空间