2013-06-27 14 views
16

は書き込み時に、BlueJのを使用して、「リテラル閉じられていない文字」エラーを得た:閉じられていない文字リテラルのエラー

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

をしかし、私は間違っているかを把握することはできません。

ありがとうございました。

+1

文字列は二重引用符で囲む必要があります。 '' hello ''を使ってください。 –

+0

[docs.oracle.com/javase/tutorial/java/data/strings.html](http://www.google.com/java/data/strings.html) – jlordo

+0

答えを訂正する答えはたくさんありますが、なぜ '' String'' inと '' char''の中に '? –

答えて

30

必要な場合は、単一引用符はエスケープして、一つの文字を取ることができます。あなたは、文字列のために、次のように完全な引用符を使用する必要があります。

y = "hello"; 

あなたはまた、私は

System.out.println(y); 

注意する必要がありますと仮定し

System.out.println(g); 

使用:char値を作ります(後でそれらを使用する可能性があります)一重引用符が必要です。たとえば:

char foo='m'; 
0

"は単一charを囲み、" "はStringを囲みます。

変更

y = 'hello'; 

- Javaでは>

y = "hello"; 
6

Javaは"String"のための二重引用符と'C' haractersのための単一引用符を使用しています。

1

文字列y = "hello";

(二重引用符に注意してください)。

char y = 'h'; これは文字に対して機能します(一重引用符に注意してください)

タイプはキーです:1つの文字に対して ''(二重引用符)、文字列には ""(二重引用符)。

2

私は既存の回答に少し追加したいと思います。 不正なUnicode形式のcharに値を渡すと、同じ「Unclosed Character Literalエラー」が発生します。あなたは正しいフォームを使用する必要が

char HI = '\3072'; 

:あなたが書いたときと同様に Javaで

char HI = '\u3072'; 
関連する問題