2013-06-27 9 views
16

carattere ottenuto l'errore "Unclosed carattere letterale", usando BlueJ, quando si scrive:Unclosed errore letterale

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

Ma io non riesco a capire cosa è sbagliato. Qualche idea?

Grazie.

+1

stringhe in Java devono essere racchiusa tra doppi apici. Usa '" ciao "'. –

+0

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

+0

Ok, quindi ho capito anch'io molte risposte sulla correzione della risposta, ma perché 'String's in" "e' char' in ''? –

risposta

30

In Java, le virgolette singole possono prendere un solo carattere, con uscita se necessario. È necessario utilizzare il massimo dei voti virgolette come segue per le stringhe:

y = "hello"; 

È inoltre utilizzato

System.out.println(g); 

che presumo dovrebbe essere

System.out.println(y); 

Nota: Quando si effettuano char valori (probabilmente li userete in seguito) è necessario virgolette singole. Per esempio:

char foo='m'; 
0

"" racchiude il singolo char, mentre "" include un String.

Change

y = 'hello'; 

->

y = "hello"; 
6

Java utilizza doppi apici per "String" e virgolette singole per 'C' haracters.

1

Stringa y = "ciao";

funzionerebbe (notare le virgolette).

char y = 'h'; questo funzionerà per i caratteri (si noti le virgolette singole)

ma il tipo è la chiave: '' (virgolette singole per un carattere, "" (virgolette) per stringa.

2

Vorrei aggiungere una piccola aggiunta alle risposte esistenti. Si ottiene lo stesso "errore letterale di carattere non chiuso", se si attribuisce valore a un carattere con modulo Unicode non corretto. Come quando si scrive:

char HI = '\3072'; 

Devi usare la forma corretta che è:

char HI = '\u3072'; 
Problemi correlati