[英]Unclosed Character Literal error
使用 BlueJ 時出現錯誤“Unclosed Character Literal”:
class abc
{
public static void main(String args[])
{
String y;
y = 'hello';
System.out.println(y);
}
}
但我不知道出了什么問題。 任何想法?
謝謝。
在Java中,單引號只能占用一個字符,必要時可以轉義。 您需要對字符串使用完整的引號,如下所示:
y = "hello";
你也用過
System.out.println(g);
我認為應該是
System.out.println(y);
注意:在制作char
值時(稍后可能會使用它們),您需要單引號。 例如:
char foo='m';
Java對"String"
使用雙引號,對'C'
"String"
使用單引號。
我想對現有答案做一點補充。 如果為具有不正確的unicode形式的char賦值,則會得到相同的“Unclosed Character Literal error”。 就像你寫的時候:
char HI = '\3072';
你必須使用正確的形式:
char HI = '\u3072';
''包含單個char
,而“”包含一個String
。
更改
y = 'hello';
- >
y = "hello";
字符串y =“你好”;
會工作(請注意雙引號)。
char y ='h'; 這將適用於字符(請注意單引號)
但類型是關鍵:一個字符的''(單引號),字符串的“”(雙引號)。
Java 中有 8 種原始數據類型。 char
就是其中之一。 當compiler
看到定義了char
數據類型時。 它從 JVM 堆分配 memory 的 1 個字節,並期望在具有兩個條件的=
符號之后有一個值。
'
(單引號)內的值。 同樣,String類型的數據類型應該用"
(雙引號)括起來,可以有任意長度的字符序列。
在給定的示例中,您混合了char
和String
數據類型的概念。 編譯器清楚地說:
未封閉字符字面量
意思是,您以'
單引號開頭,因此編譯器只需要在打開'
然后關閉'
之后有一個字符。 因此,字符文字被認為是unclosed
的,您會看到錯誤。
因此,您要么使用char
數據類型,要么使用'
單引號將單個字符括起來。 或者使用String
數據類型和"
雙引號將任意長度的字符序列括起來。
所以,正確的做法是:
String y = "hello";
System.out.println(y);
角色只需要一個價值家伙! 喜歡:char y ='h'; 也許你打字就像char y ='hello'; 或smthg。 祝好運。 對於上面提到的問題,答案很簡單,你必須使用DOUBLE QUOTES來給出一個字符串值。 很容易;)
使用我在下面提到的雙引號你的y
數據類型是字符串,它應該是雙引號
class abc
{
public static void main(String args[])
{
String y;
y = "hello";
System.out.println(y);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.