我正在尝试使用unicode在字符串中添加双引号,但是当我这样做时,我得到编译时错误。
String unicCode = "\u0022"; //This line gives a compile time error.
编译错误是我得到的
双引号未正确关闭字符串文字。
有人可以帮助我理解用于附加双引号(“)的unicode所需的转义字符。
答案 0 :(得分:7)
public static void main(String[] args) {
String quote = "\u005c\u0022";
System.out.println(quote);
}
<强>输出强>
"
public static void main(String[] args) {
String quote = "\u005c\u0022" + "abc" + "\u005c\u0022";
System.out.println(quote);
}
<强>输出强>
"abc"
如果要将两个双引号字符放入字符串文字中,可以使用常规转义序列来完成。但是你不能使用Unicode escapes
因为Java没有为字符串文字中的Unicode转义提供特殊处理。
String quote = "\"";
//我们不能用单个Unicode转义表示相同的字符串。
// \u0022
与编译器具有完全相同的含义&#34;。
//下面的字符串变成"""
:后跟一个空字符串
//由未终止的字符串生成编译错误。
String quote = "\u0022";
答案 1 :(得分:2)
当javac编译器读取java源文本时,\uXXXX
转义已经提前解决。它与字符串文字和反斜杠逃避无关。 \u0022
与char "
相同。 因此需要在字符串文字中转义:"\\u0022"
,其读作"\""
。此方法旨在使用任何unicode启用java源的纯ASCII表示。但你也可以逃避ASCII:
public \u0063lass Test {
public static void \u006dain(String[] args) {