未闭合字符文字错误

Posted

技术标签:

【中文标题】未闭合字符文字错误【英文标题】: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" docs.oracle.com/javase/tutorial/java/data/strings.html 好的,所以我得到了太多关于更正答案的答案,但为什么 Strings 在 " " 和 char 在 ' ' 中? 为什么不char y;y = 'hello'; 正如我在回答中所说,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 字节的内存,并期望在 = 符号之后有两个条件的值。

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

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

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

未闭合字符字面量

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

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

所以,正确的做法是:

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

【讨论】:

【参考方案8】:

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

【讨论】:

以上是关于未闭合字符文字错误的主要内容,如果未能解决你的问题,请参考以下文章

SQLException: 字符串 ''' 后的未闭合引号

如何在 Scala 中表示一个空字符?

字符串'BDR_POST-BI(SCT')后的未闭合引号

SQL Server存储过程插入长字符串时出错:字符串后引号未闭合

Javascript未终止的字符串文字错误

java: input.next 不再接受用户输入