\u000d和\u000a为什么不能用

时间:2021-11-04 20:41:22
下面的程序可以正常运行
class Abc{ 
  public static void main(String args[])
  {  System.out.println("123456\nab");
         System.out.println("123456\rab");
    }
 }
但是如果我将输出语句中的'\r'改成'\u000d'或者将'\n'改成'\u000a'
class Abc{ 
  public static void main(String args[])
  {  System.out.println("123456\u000aab");
     System.out.println("123456\rab");
  }
 }
或者
class Abc{ 
  public static void main(String args[])
  {  System.out.println("123456\u000dab");
     System.out.println("123456\nab");
  }
 }

将出现下列提示
unclosed String literal   location :line3
unclosed String literal   location :line3
'}' expected              location :line4

即使我将第三条语句用注释//都不行
class Abc{ 
  public static void main(String args[])
  {  //System.out.println("123456\u000aab");
     System.out.println("123456\rab");
  }
 }
将出现错误提示:
unclosed String literal   location :line3
not a statement           location :line3


我的疑问:
1、为什么可以输出\n或者\r,却不能输出\u000a或\u000d,\n的unicode码不就是\u000a,\r的unicode码不就是\u000d吗?
2、即使\u000a是个非法字符,但我用注释符号\\为什么不能将其注释呢?
期望高手给我解答,先谢谢了

2 个解决方案

#1


mark

#2


第一个问题是字符编码的问题,在工程命右击把编码格式换到支持unicode码的即可
第二个问题也是由这个引起的

#1


mark

#2


第一个问题是字符编码的问题,在工程命右击把编码格式换到支持unicode码的即可
第二个问题也是由这个引起的