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.