比如我现在有个unicode编码“0041”,对应字符 ‘A’,我怎么才能输出这个A呢。在程序中如果是用‘\u0041’可以输出‘A’,但在程序中组成‘即"\\u"+"0041",输出是’\u0041‘,怎么解决呢?在下请教了,还有是谁知道转义字符实现的源代码在Java源包哪个地方,知会一声,先谢谢了

解决方案 »

  1.   

    //直接单引号 引用16进制
    System.out.println('/u0041');//使用参数
    char a = 65;// /u0041==65
    System.out.println(a);//其实一抹一样 就怕lz不给分
      

  2.   

    利用这个解决了
    http://forum.java.sun.com/thread.jspa?messageID=9924657
      

  3.   

    等高人看有没有跟好的解决方法,例子中的”0041“是个string对象,不能像楼上说的那样组合,可以这么说,我给你个string对象str,内容为"0041",你利用str最后输出‘A’,不要重新赋值,可以组合,能解决的马上给全分
      

  4.   

    什么叫不能重新赋值,不能先用Integer把他parse为数字再赋值给char?
      

  5.   

    我的意思是str="0041",你不要重新来个str="\u0041",但你可以组合成这样,不过最后输出为A,如果进行转换,使用数字的话也可以,我试了下
    import java.io.UnsupportedEncodingException;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.util.Locale;public class Test { public static void main(String[] args) throws UnsupportedEncodingException, ParseException {
    String t="0041";
    int count=0;
    char[] c=t.toCharArray();
    for(int i=0;i<c.length;i++){
    count+=getInt(c[i])*Math.pow(16, c.length-1-i);
    }
    System.out.println(count);
    System.out.println((char)count);
    }
    public static int getInt(char c){
    switch(c){
    case '1':return 1;
    case '2':return 2;
    case '3':return 3;
    case '4':return 4;
    case '5':return 5;
    case '6':return 6;
    case '7':return 7;
    case '8':return 8;
    case '9':return 9;
    case 'A':
    case 'a':
    return 10;
    case 'B':
    case 'b':
    return 11;
    case 'C':
    case 'c':
    return 12;
    case 'D':
    case 'd':
    return 13;
    case 'E':
    case 'e':
    return 14;
    case 'F':
    case 'f':
    return 15;
    }
    return 0;
    }
    }
      

  6.   

    真失望,都说得这么清楚了char a = (char) Integer.parseInt(input, 16);
    System.out.println(String.valueOf(a));