Unclosed Character Literal错误

Gau*_*don 23 java string char

在编写时使用BlueJ得到错误"Unclosed Character Literal":

class abc
{
   public static void main(String args[])
   {
       String y;
       y = 'hello';
       System.out.println(y);
   }
}
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚出了什么问题.任何的想法?

谢谢.

ζ--*_*ζ-- 44

在Java中,单引号只能占用一个字符,必要时可以转义.您需要对字符串使用完整的引号,如下所示:

y = "hello";
Run Code Online (Sandbox Code Playgroud)

你也用过

System.out.println(g);
Run Code Online (Sandbox Code Playgroud)

我认为应该是

System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

注意:在创建char值时(您可能会在以后使用它们),您需要单引号.例如:

char foo='m';
Run Code Online (Sandbox Code Playgroud)


Rav*_*yal 6

Java使用双引号"String"和单引号来表示'C'haracters.


小智 5

我想对现有答案做一点补充。如果您为具有不正确的 unicode 形式的 char 赋予值,您会得到相同的“未封闭字符文字错误”。就像你写的那样:

char HI = '\3072';
Run Code Online (Sandbox Code Playgroud)

您必须使用正确的形式:

char HI = '\u3072';
Run Code Online (Sandbox Code Playgroud)