129 votes

Y a-t-il une différence entre les guillemets simples et doubles en Java ?

Y a-t-il une différence entre les guillemets simples et doubles en Java ?

186voto

Yuval Adam Points 59423

Utilisez des guillemets simples pour les valeurs littérales char les guillemets doubles pour les valeurs littérales String s, comme ça :

char c = 'a';
String s = "hello";

Ils ne peuvent pas être utilisés dans l'autre sens (comme en Python, par exemple).

43voto

VonC Points 414372

Un caractère est un caractère UTF-16 unique, c'est-à-dire une lettre, un chiffre, un signe de ponctuation, une tabulation, un espace ou quelque chose de similaire.

Un littéral char est soit un caractère unique entre guillemets, comme ceci

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 lors de la compilation et que, par conséquent, l'utilisation de ' \u00A conduira à 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 étant pour String vous devez utiliser une "séquence d'échappement entre guillemets doubles" ( \" ) à l'intérieur des chaînes de caractères, là où, sinon, il mettrait fin à 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 = '"';

23voto

Eddy Bayonne Points 459

Considérons cette ligne de codes (Java) :

System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169

1) La première ligne est une concaténation de H y A qui se traduira par HA (Chaîne littérale)

2) Ensuite, nous ajoutons les valeurs de deux caractères qui, selon la table ASCII, sont les suivants 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 chaînes de caractères. A et l'omble N qui se traduira par AN .

5voto

Horse_1995 Points 167

Le guillemet simple indique un caractère et le guillemet double une chaîne

char c='c' ;

'c'-----> c est un caractère

Chaîne s="stackoverflow" ;

"stackoverflow"------> stackoverflow est une chaîne de caractères (c'est-à-dire une collection de caractères).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X