java - 为什么\u000a 是坏字符?

标签 java

<分区>

我正在尝试从十六进制初始化一个字符串:

import java.io.*;

public class a {
    public static void main (String[] args)
    {
        try {
            PrintWriter w = new PrintWriter("something"); 
            w.println("\u0061\u0062\u000a");
            w.close(); 
        } catch (Exception e) {};
    }
}

但看起来“\u000a”是一个坏字符,它一直告诉我未闭合的字符串文字?

a.java:8: error: unclosed string literal
            w.println("\u0061\u0062\u000a");

知道它有什么问题吗?

运行:

%> java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

最佳答案

这是 \u 在 Java 中的处理方式的结果。这些 un​​icode 转义在编译的早期就被处理,甚至在分词器识别字符串文字之前。

因此代码片段等同于:

w.println("ab
");

这显然是不正确的。

要修复此问题,请使用 \n 而不是 \u000a

关于java - 为什么\u000a 是坏字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25218215/

相关文章:

java - 如何在不使用位置的情况下获取设备的区号

java - 12 :00 am as end time is moving to next date

java - If 语句中的二维数组

java - 如何降低装桶程序的时间复杂度?

java - 输出中的程序十进制到二进制转换错误

java - 如何部署一个简单的Drools应用程序?

java - 获取应用程序端口而不访问请求对象

java - JMF 中的视频效果

java - 在 Java 中将日期转换为 C# 刻度

java - 在 memcache 中缓存单例