Existe uma diferença entre aspas simples e duplas em Java?


101

Existe uma diferença entre aspas simples e duplas em Java?

Respostas:


146

Use aspas simples para chars literais , aspas duplas para Strings literais , assim:

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

Eles não podem ser usados ​​de outra forma (como em Python, por exemplo).


10
E, é claro, esse comportamento é emprestado de C (que provavelmente o pegou em outro lugar, eu presumo).
JesperE

Para mim, apóstrofos literais lançados automaticamente intem tais contextos. Portanto, não precisa ser assim char. Merece alguns votos negativos ... simplista.
Hydroper

36

Um char é um único caractere UTF-16, que é uma letra, um dígito, um sinal de pontuação, uma tabulação, um espaço ou algo semelhante.

Um literal de char é um único caractere entre aspas simples como este

char myCharacter = 'g'; 

ou uma sequência de escape, ou mesmo uma sequência de escape unicode:

char a = '\t';    // Escape sequence: tab
char b = '\177'   // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence. 

É importante notar que as sequências de escape Unicode são processadas muito cedo durante a compilação e, portanto, usar '\ u00A' levará a um erro do compilador. Para símbolos especiais, é melhor usar sequências de escape, ou seja, '\ n' em vez de '\ u00A'.

Sendo aspas duplas String, você deve usar uma "seqüência de escape de aspas duplas" ( \") dentro das strings onde, de outra forma, terminaria a string.
Por exemplo:

System.out.println("And then Jim said, \"Who's at the door?\"");

Não é necessário escapar as aspas duplas entre aspas simples.
A seguinte linha é válida em Java:

char doublequote = '"';

12

Vamos considerar estas linhas de código (Java):

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

1) A primeira linha é a concatenação de He Aisso resultará em HA(literal de string)

2) Em segundo lugar, estamos adicionando os valores de dois caracteres que de acordo com a Tabela ASCII H= 72 e a= 97 isso significa que estamos adicionando 72+97como ('H'+'a').

3) Vamos considerar outro caso em que teríamos:

System.out.println("A"+'N');//AN

Neste caso, estamos lidando com a concatenação de String Ae char Nque resultará em AN.


4

Aspas simples indicam caracteres e aspas duplas indicam string.

char c = 'c';

'c' -----> c é um caractere

String s = "stackoverflow";

"stackoverflow" ------> stackoverflow é uma string (ou seja, coleção de caracteres)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.