作一个简单的unicode输出:  System.out.print("\u002a");
得到: * System.out.print("\u4e10");
得到:丐换行的unicode编码是十六进制的a
 System.out.print("\u000a");
但编译的时候有错误:
D:\java\src\JavaABC\src\javaabc\Main.java:53: 未结束的字符串字面值
       System.out.print("\u000a");请教一下, 换行为什么不能输出 ?

解决方案 »

  1.   

    换行请使用System.out.println(""); 谢谢。
      

  2.   

    \u000a是一个LineFeed,即换行,编译后为System.out.print(
                                                          );
    print()没有空参重载形式,所以为错
      

  3.   

    楼上的说的对,如果你看过java puzzzlers你会知道。
    其实编译的时候编译器会把源代码中所有的unicode代码转换过来,然后再做语法分析,
    你的这句代码
    System.out.print("\u000a");
    编译程序先会讲他变成
    System.out.print(
    );
    然后在开始编译(可能这里应该叫做语法分析)
    接下来就如楼上说的print()没有空参重载形式,所以为错
      

  4.   

    我再做了些测试:1。
    -----------------------------------
     System.out.print("");
     System.out.print("\n");
    是没有错的2。
    ------------------------------------
    把那句话注释掉:
      // System.out.print("\u000a");
    出错:
    D:\java\src\JavaABC\src\javaabc\Main.java:50: 未结束的字符串字面值这个问题我再java puzzlers中找到了答案:
    上面的注释实际上是先被编译程序识别为:
      // System.out.print("                (换行了)
      a");所以出错3。
    ----------------------------------
      System.out.println("\u000a");
    出错:
    D:\java\src\JavaABC\src\javaabc\Main.java:51: 未结束的字符串字面值
       System.out.println("\u000a");
    D:\java\src\JavaABC\src\javaabc\Main.java:51: 未结束的字符串字面值在这里, 比前一个多了个错误,但是同一个错误, 我在baidu 和google查找这种错误类型, 全部是程序中的表达式有问题, 这个, 我想也不例外。就是说这不是print的问题, 是因为"\u000a"这个表达式的问题空参形式不知道是不是我的第一个测试?麻烦, 有人知道java puzzlers中讲解print在那部分, 告诉我一下??
      

  5.   

    char c = '\u000a';//compile error
    invalid character,怀疑是字符串非法的问题,不知道是不是楼上几位讲的原因