JDK 1.8 on unicode escape characters gives string literal is not properly closed by a double-quote error
本问题已经有最佳答案,请猛点这里访问。
你好,智能社区,
我对这个问题做了一些研究,似乎找不到确切问题的答案。
我面临一个奇怪的编译时间问题,Java字符串文字包含Unicode转义代码。
下面是正在考虑的代码段:
1 2 3 4 5 6 7 8 9 10 11 12 |
我得到一个编译时错误"字符串文本没有用双引号正确地结束"
1 |
奇怪的是,这条线
1 2 | .replace(" ","\u000A") |
如果存在相同的Unicode文本,似乎不会导致任何问题。我使用Unicode符号语法已经有一段时间了。如果内存没有出现故障,则格式为uxxxx,其中x是十六进制数字。
我的环境是
- JDK 1.8 066
- 麦考斯El Capitan
- 月蚀火星1
我的问题是:
(这很令人沮丧,阻止我编译代码)
在分析文本之前,将转换u个单码,以便
1 |
是一样的
1 2 |
下面是一个hello world程序的示例,该程序完全由u代码组成https://stackoverflow.com/a/30727799/57695
1 2 3 4 5 6 7 8 9 10 11 | \u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020 \u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079 \u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020 \u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063 \u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028 \u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020 \u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b \u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074 \u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020 \u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b \u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d |
相反,你可以
1 2 | .replace(" ","\\u000A") |
或者只是
1 2 3 | .replace(" ","\ ") |