web-dev-qa-db-ja.com

閉じられていない文字リテラルエラー

書き込み時にBlueJを使用して、エラー「Unclosed Character Literal」を取得しました。

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

しかし、何が悪いのかわかりません。何か案が?

ありがとう。

23
Gaurang Tandon

Javaでは、単一引用符は1文字しか使用できず、必要に応じてエスケープできます。文字列には、次のように完全な引用符を使用する必要があります。

y = "hello";

あなたも使用しました

System.out.println(g);

私はそうすべきだと思います

System.out.println(y);

注:char値を作成する場合(後で使用する可能性が高い)、単一引用符needが必要です。例えば:

char foo='m';
44
Andrey Akhmetov

Javaは"String"に二重引用符を使用し、'C'haractersに単一引用符を使用します。

6
Ravi Thapliyal

既存の回答に少し追加したいと思います。不正なUnicode形式の文字に値を指定すると、同じ「閉じられていない文字リテラルエラー」が発生します。あなたが書くときのように:

char HI = '\3072';

次の正しいフォームを使用する必要があります。

char HI = '\u3072';
4
Chase

文字列y = "hello";

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

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

ただし、タイプはキーです。1文字の場合は ''(単一引用符)、文字列の場合は ""(二重引用符)です。

1
safe

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

変化する

y = 'hello';

->

y = "hello";
1
zw324

キャラクターは1つの値の男しか取りません! like:char y = 'h';そして多分あなたはchar y = 'hello'のようにタイプした;またはsmthg。がんばろう。上記の質問に対する答えは非常に簡単です。文字列値を与えるには二重引用符を使用する必要があります。十分簡単;)

0
Yuvaraj K