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'
等都可以。
public static void main(String[] args){
char pp='\u005c';// Charactr '/'
}
}
这个为什么通不过编译?
错误显示是:未结束的字符字面值
而char pp='\u005a'
char pp='\u005b'
char pp='\u005d'
char pp='\u005e'
等都可以。
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';
是从上面的类里取出来的呀
char pp='\u005a'这种命名错误的
这里的pp是字符串不是字符
编译器把\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
>编译器把\uHHHH替换了成了对应字符
我的意思是编译器先替换\uHHHH然后再编译替换好以后的内容
第一次碰到,估计是
编译器把\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