Risposte:
Usa virgolette singole per chars letterali , virgolette doppie per Strings letterali , in questo modo:
char c = 'a';
String s = "hello";
Non possono essere usati in nessun altro modo (come in Python, per esempio).
intin tali contesti. Quindi non è necessario char. Meritevole di alcuni voti negativi ... semplicistico.
Un carattere è un singolo carattere UTF-16, ovvero una lettera, una cifra, un segno di punteggiatura, una tabulazione, uno spazio o qualcosa di simile.
Un letterale char è un singolo carattere racchiuso tra virgolette singole come questa
char myCharacter = 'g';
o una sequenza di escape, o anche una sequenza di escape Unicode:
char a = '\t'; // Escape sequence: tab
char b = '\177' // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence.
Vale la pena notare che le sequenze di escape Unicode vengono elaborate molto presto durante la compilazione e quindi l'utilizzo di "\ u00A" porterà a un errore del compilatore. Per i simboli speciali è meglio usare invece sequenze di escape, cioè "\ n" invece di "\ u00A".
Essendo le virgolette doppie String, è necessario utilizzare una "sequenza di escape di virgolette doppie" ( \") all'interno di stringhe dove altrimenti terminerebbe la stringa.
Per esempio:
System.out.println("And then Jim said, \"Who's at the door?\"");
Non è necessario sfuggire alle virgolette doppie all'interno di virgolette singole.
La riga seguente è legale in Java:
char doublequote = '"';
Consideriamo queste righe di codice (Java):
System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169
1) La prima riga è la concatenazione di He Ache risulterà in HA(String literal)
2) In secondo luogo stiamo aggiungendo i valori di due caratteri che secondo la tabella ASCII H= 72 e a= 97 significa che stiamo aggiungendo 72+97è come ('H'+'a').
3) Consideriamo un altro caso in cui avremmo:
System.out.println("A"+'N');//AN
In questo caso abbiamo a che fare con la concatenazione di String Ae char Nche risulterà in AN.
Le virgolette singole indicano il carattere e le virgolette doppie indicano la stringa.
char c = 'c';
'c' -----> c è un carattere
String s = "stackoverflow";
"stackoverflow" ------> stackoverflow è una stringa (cioè raccolta se caratteri)