web-dev-qa-db-fra.com

Erreur littérale de caractère

Vous avez obtenu l'erreur "Littéral de caractère non joint", avec BlueJ, lors de l'écriture:

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

Mais je ne peux pas comprendre ce qui ne va pas ... Une idée?

Merci.

21
Gaurang Tandon

En Java, les guillemets simples ne peuvent prendre qu'un seul caractère, avec d'échappement si nécessaire. Vous devez utiliser des guillemets complets comme suit pour les chaînes:

y = "hello";

Vous avez également utilisé 

System.out.println(g);

que je suppose devrait être

System.out.println(y);

Remarque: Lorsque vous définissez des valeurs char (vous les utiliserez probablement plus tard), vous avez besoin de guillemets simples. Par exemple:

char foo='m';
40
Andrey Akhmetov

Java utilise les guillemets doubles pour "String" et les guillemets simples pour les caractères 'C'.

6
Ravi Thapliyal

J'aimerais ajouter un petit ajout aux réponses existantes . Vous obtenez la même "erreur littérale de caractère non fermé", si vous donnez de la valeur à un caractère avec une forme unicode incorrecte . Comme lorsque vous écrivez:

char HI = '\3072';

Vous devez utiliser le bon formulaire qui est:

char HI = '\u3072';
4
Chase

Chaîne y = "bonjour";

fonctionnerait (notez les guillemets doubles).

char y = 'h'; cela fonctionnera pour les caractères (notez les guillemets simples)

mais le type est la clé: '' (guillemets simples) pour un caractère, "" (guillemets doubles) pour chaîne.

1
safe

'' contient une seule variable char, alors que "" contient une String.

Changement

y = 'hello';

->

y = "hello";
0
Ziyao Wei