it-swarm.com.de

Fehler bei nicht geschlossenem Zeichenliteral

Beim Schreiben mit BlueJ wurde der Fehler "Unclosed Character Literal" ausgegeben:

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

Aber ich kann nicht herausfinden, was falsch ist ... Eine Idee?

Vielen Dank.

21
Gaurang Tandon

In Java können einfache Anführungszeichen nur ein Zeichen enthalten, wenn nötig mit Escapezeichen. Sie müssen vollständige Anführungszeichen wie folgt für Zeichenfolgen verwenden:

y = "hello";

Du hast auch gebraucht 

System.out.println(g);

was ich vermute sollte sein

System.out.println(y);

Hinweis: Wenn Sie char-Werte festlegen (Sie werden sie wahrscheinlich später verwenden), müssen Sie brauchen einfache Anführungszeichen. Zum Beispiel:

char foo='m';
40
Andrey Akhmetov

Java verwendet doppelte Anführungszeichen für "String" und einfache Anführungszeichen für 'C'zeichen.

6
Ravi Thapliyal

Ich möchte eine kleine Ergänzung zu den vorhandenen Antworten geben. Sie erhalten den gleichen "Unclosed Character Literal error", wenn Sie einem Zeichen mit falschem Unicode-Formular einen Wert geben. Wie beim Schreiben:

char HI = '\3072';

Sie müssen das richtige Formular verwenden, das heißt:

char HI = '\u3072';
4
Chase

String y = "Hallo";

würde funktionieren (beachten Sie die doppelten Anführungszeichen).

char y = 'h'; das funktioniert für Zeichen (beachten Sie die einfachen Anführungszeichen)

aber der Typ ist der Schlüssel: '' (einfache Anführungszeichen) für ein Zeichen, "" (doppelte Anführungszeichen) für Zeichenfolge.

1
safe

'' umfasst einzelne char, während "" eine String eingeschlossen ist.

Veränderung

y = 'hello';

->

y = "hello";
0
Ziyao Wei

Der Charakter hat nur einen Wert! wie: char y = 'h'; und vielleicht hast du geschrieben wie char y = 'hallo'; oder smthg. Viel Glück. Für die oben gestellte Frage ist die Antwort ziemlich einfach. Sie müssen DOUBLE QUOTES verwenden, um einen String-Wert zu erhalten. leicht genug;)

0
Yuvaraj K