【问题标题】:Unclosed Character Literal error未闭合字符文字错误
【发布时间】:2013-06-25 00:33:19
【问题描述】:

使用 BlueJ 编写时出现错误“Unclosed Character Literal”:

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

但我不知道出了什么问题。 有什么想法吗?

谢谢。

【问题讨论】:

  • Java 中的字符串需要用双引号括起来。使用"hello"
  • 好的,所以我得到了太多关于更正答案的答案,但为什么 Strings 在 " " 和 char 在 ' ' 中?
  • 为什么不char y;y = 'hello';
  • 正如我在回答中所说,char 只能带 一个 字符。顾名思义,它是一个字符,并因此而被称为字符。

标签: java string char


【解决方案1】:

在 Java 中,单引号只能占用一个字符,必要时可以转义。字符串需要使用全引号,如下:

y = "hello";

你也用过

System.out.println(g);

我认为应该是

System.out.println(y);

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

char foo='m';

【讨论】:

    【解决方案2】:

    Java 对"String" 使用双引号,对'C'haracters 使用单引号。

    【讨论】:

      【解决方案3】:

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

      char HI = '\3072';
      

      您必须使用正确的格式:

      char HI = '\u3072';
      

      【讨论】:

        【解决方案4】:

        '' 包含单个 char,而 "" 包含一个 String

        改变

        y = 'hello';
        

        -->

        y = "hello";
        

        【讨论】:

          【解决方案5】:

          字符串 y = "你好";

          会起作用(注意双引号)。

          char y = 'h'; 这适用于字符(注意单引号)

          但类型是关键:''(单引号)表示一个字符,“”(双引号)表示字符串。

          【讨论】:

            【解决方案6】:

            使用双引号符号,如下所述 您的y 数据类型是字符串,它应该双引号符号

            class abc
            {
               public static void main(String args[])
               {
                   String y;
                   y = "hello";
                   System.out.println(y);
               }
            }
            

            【讨论】:

              【解决方案7】:

              Java 中有 8 种原始数据类型。 char 就是其中之一。当compiler 看到char 数据类型被定义。它从 JVM 堆中分配 1 字节的内存,并期望在 = 符号之后有两个条件的值。

              1. ' 中包含的值(单引号)。
              2. 值为单个字符长。可以是单个字符,也可以是对应单个字符的有效代码,不能使用英文键盘输入。

              同理,String类型的数据类型应该用"(双引号)括起来,并且可以有任意长度的字符序列。

              在给定的示例中,您混合了 charString 数据类型的概念。编译器清楚地说:

              未闭合字符字面量

              意思是,您从 ' 单引号开始,因此编译器只期望在打开 ' 之后是单个字符,然后是关闭 '。因此,字符文字被视为unclosed,您会看到错误。

              因此,您要么使用char 数据类型和' 单引号将单个字符括起来。 或者使用String 数据类型和" 双引号将任意长度的字符序列括起来。

              所以,正确的做法是:

              String y = "hello";
              System.out.println(y);
              

              【讨论】:

                【解决方案8】:

                角色只需要一个值,伙计!喜欢: 字符 y = 'h'; 也许你输入了 char y = 'hello';或之类的。祝你好运。对于上面提出的问题,答案非常简单,您必须使用双引号来给出字符串值。很简单;)

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2022-08-18
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-03-16
                  • 2013-06-15
                  相关资源
                  最近更新 更多