public  class test{
    public static void main(String[] args){
         char pp='\u005c';// Charactr '/'
    }
}
这个为什么通不过编译?
错误显示是:未结束的字符字面值
而char pp='\u005a'
char pp='\u005b'
char pp='\u005d'
char pp='\u005e'
等都可以。

解决方案 »

  1.   

    public class test{
        public static void main(String[] args){
                     char pp='\\';
            
             System.out.printf("%x\n",(int)pp);
             System.out.printf("%d\n",(int)pp);
        }
    }
    可我的char pp='\u005c';
    是从上面的类里取出来的呀
      

  2.   

    JAVA不是C
    char pp='\u005a'这种命名错误的
    这里的pp是字符串不是字符
      

  3.   

    第一次碰到,估计是
    编译器把\uHHHH替换了成了对应字符,比如
    char pp = '\u0021'; ==> char pp = '!';
    char pp = '\u0041'; ==> char pp = 'A';碰巧\u005c是\,所以
    char pp = '\u005c'; ==> char pp = '\'; 编译不通过
    char pp = '\u005cn'; ==> char pp = '\n';编译通过
    System.out.println('\u005cn' == '\n');打印true
      

  4.   

    楼上的lixiaoxue85(蛮野蛮)学过Java没有,不知道乱讲
      

  5.   

    上面
    >编译器把\uHHHH替换了成了对应字符
    我的意思是编译器先替换\uHHHH然后再编译替换好以后的内容
      

  6.   

    shine333(enihs) ( ) 信誉:125    Blog  2006-12-19 12:40:31  得分: 0  
     
     
       第一次碰到,估计是
    编译器把\uHHHH替换了成了对应字符,比如
    char pp = '\u0021'; ==> char pp = '!';
    char pp = '\u0041'; ==> char pp = 'A';碰巧\u005c是\,所以
    char pp = '\u005c'; ==> char pp = '\'; 编译不通过
    char pp = '\u005cn'; ==> char pp = '\n';编译通过
    System.out.println('\u005cn' == '\n');打印true