智能社区你好,
我围绕这个问题做了一些研究,似乎找不到我确切问题的答案
我正面临一个包含unicode转义码的Java String文字的奇怪的编译时问题。
以下是正在考虑的代码段:
String text = textArea.getText().trim();
String unicodeReturn = "\u000A";
text =
"\"" +
text
.replace(" ", "%s")
.replace("\\", "\\\\")
.replace("\"", "\\\"")
.replace("\n", "\u000A")
+
"\"";
我得到编译时错误"字符串文字没有通过双引号" 正确关闭
String unicodeReturn = "\u000A";
奇怪的是,这条线
.replace("\n", "\u000A")
存在相同的unicode文字,似乎不会引起任何问题。我一直在使用unicode表示法语法很长一段时间了。如果我的记忆没有让我失望,那么格式是 \ uXXXX ,其中X是十六进制数字。
我的环境是
我的问题是:
(这非常令人沮丧并阻止我编译我的代码)
答案 0 :(得分:3)
在解析文本
之前,转换为。String unicodeReturn = "\u000A";
与
相同String unicodeReturn = "
";
以下是完全由\ u codes https://stackoverflow.com/a/30727799/57695
组成的Hello World程序示例\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
相反,你可以做到
.replace("\n", "\\u000A")
或只是
.replace("\n", "\\n")