Y a-t-il une différence entre les guillemets simples et doubles en Java?
Utilisez des guillemets simples pour le littéral char
s, des guillemets doubles pour le littéral String
s, comme ceci:
char c = 'a';
String s = "hello";
Ils ne peuvent pas être utilisés autrement (comme en Python, par exemple).
Un caractère est un seul caractère UTF-16, c'est-à-dire une lettre, un chiffre, un signe de ponctuation, une tabulation, un espace ou quelque chose de similaire.
Un littéral de caractère est soit un seul caractère entre guillemets simples comme celui-ci
char myCharacter = 'g';
ou une séquence d'échappement, ou même une séquence d'échappement unicode:
char a = '\t'; // Escape sequence: tab
char b = '\177' // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence.
Il convient de noter que les séquences d'échappement Unicode sont traitées très tôt pendant la compilation et donc l'utilisation de '\ u00A' entraînera une erreur de compilation. Pour les symboles spéciaux, il est préférable d'utiliser des séquences d'échappement à la place, c'est-à-dire '\ n' au lieu de '\ u00A'.
Les guillemets doubles étant pour String
, vous devez utiliser une "séquence d'échappement des guillemets doubles" (\"
) à l'intérieur de chaînes où cela finirait autrement la chaîne.
Par exemple:
System.out.println("And then Jim said, \"Who's at the door?\"");
Il n'est pas nécessaire d'échapper aux guillemets doubles entre guillemets simples.
La ligne suivante est légale en Java:
char doublequote = '"';
Considérons ces lignes de codes (Java):
System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169
1) La première ligne est la concaténation de H
et A
qui se traduira par HA
(chaîne littérale)
2) Deuxièmement, nous ajoutons les valeurs de deux caractères qui, selon le ASCII Table H
= 72 et a
= 97, cela signifie que nous ajoutons 72+97
c'est comme ('H'+'a')
.
3) Considérons un autre cas où nous aurions:
System.out.println("A"+'N');//AN
Dans ce cas, nous avons affaire à la concaténation de String A
et char N
qui se traduira par AN
.
Un guillemet simple indique un caractère et un guillemet double indique une chaîne.
char c = 'c';
'c' -----> c est un caractère
String s = "stackoverflow";
"stackoverflow" ------> stackoverflow est une chaîne (c'est-à-dire collection si caractères)