String s="中文";
String[]   ss=new   String[s.length()];  
  for(int   i=0;i<s.length();i++)  
  {  
   System.out.println((int)s.charAt(i));
        ss[i]=Integer.toHexString((int)s.charAt(i)   &   0xffff);  
        System.out.println(ss[i]);  
  }

解决方案 »

  1.   

    Java codeString s="中文";
            String[]   ss=newString[s.length()];for(inti=0;i<s.length();i++)  
              {  
                      System.out.println((int)s.charAt(i));
                      ss[i]=Integer.toHexString((int)s.charAt(i)&0xffff);
                    System.out.println(ss[i]);  
              }没上色
      

  2.   

    ss[i]=Integer.toHexString((int)s.charAt(i) & 0xffff)
    就是这部分,
      

  3.   

    ss[i]=Integer.toHexString((int)s.charAt(i)&0xffff);应该是转换成对应的16进制表示
      

  4.   

    static String toHexString(int i) 
              以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 
      

  5.   

    ss[i]=Integer.toHexString((int)s.charAt(i) & 0xffff) s.i位转为int,与上0xffff ,转为16进制s="中文" = \u4e2d\u658720013
    4e2d
    25991
    6587
      

  6.   

    为什么 与上0xffff就转为16进制了、?
      

  7.   

    Integer.toHexString它的作用。
    你把int)s.charAt(i) & 0xffff直接输出一下看看
      

  8.   

    不用与0xffff的吧
    ss[i]=Integer.toHexString((int)s.charAt(i))
    也OK的啊。 
      

  9.   

    我知道是一个16进制表示0xXXXX
    我只是不知道它如何运算的,
      

  10.   

    转换成16进制的不是跟0xffff进行的与操作,不信,你算一下32&0xffff,结果还是32,这个与操作是为了把高位截断,因为int的长度是是32位,char长度是16位,具体的你运行一下这个程序就知道了public class test
    {
    public static void main(String[] args)
    {
    System.out.println(Integer.toHexString(-32));
    System.out.println(Integer.toHexString(-32 & 0xffff));
    System.out.println(Integer.toBinaryString(-32));
    System.out.println(Integer.toBinaryString(-32 & 0xffff));
    }}
      

  11.   

    toHexString(int i) 
              以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。