char中存若为中文,是2个字节,若为字母等,又是1个字节,byte是1个字节的,也就是说,直接将char[] 转换为 byte[],在byte的长度定义上肯定是会有问题的。
所以,我们可以通过String对象中转转换,比如如下:
        char[] ch = {'中','a'};
        String str = String.valueOf(ch,0,ch.length);
        byte[] alpha = str.getBytes();
        System.out.println(str);
        System.out.println(alpha.length);

解决方案 »

  1.   

    忘了将byte[]转为char[]的了
    综合如下:
    public class Test{
        public static void main(String[] args) {
          try {
            //从char[]到byte[]
            char[] ch = {'中','a'};
            String str = String.valueOf(ch,0,ch.length);
            byte[] alpha = str.getBytes();
            System.out.println(str);
            System.out.println(alpha.length);        //从byte[]到char[]
            String str2 = new String(alpha);
            char[] ch2 = new char[str2.length()];
            System.out.println(str2);
            for(int i=0;i<str2.length();i++) {
              ch2[i] = str2.charAt(i);
              System.out.println(ch2[i]);
           }
          }
          catch(Exception es) {
           es.printStackTrace();
          }
        }
    }