2009-01-13 36 views

Respuesta

117

Use comillas simples para literales char s, citas dobles para literales String s, así:

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

No pueden ser utilizados de cualquier otra manera alrededor (como en Python, por ejemplo).

+7

Y, por supuesto, este comportamiento ha sido tomada de C (que probablemente lo consiguió en otro lugar, supongo). – JesperE

+0

Para mí, los apóstrofes literalmente se convierten automáticamente a 'int' en dichos contextos. Entonces no necesita ser 'char'. Deservin 'algunos votos abajo ... simplista. – Hydro

30

Una char es un carácter UTF-16 único, que es una letra, un dígito, un signo de puntuación, una pestaña, un espacio o algo similar.

un char literal es o bien un solo un personaje encerrado en comillas simples como esto

char myCharacter = 'g'; 

o un escape de secuencia, o incluso una secuencia de escape Unicode:

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

Vale la pena señalar que las secuencias de escape Unicode se procesan muy temprano durante la compilación y, por lo tanto, el uso de '\ u00A' dará lugar a un error del compilador. Para símbolos especiales, es mejor usar secuencias de escape, es decir, '\ n' en lugar de '\ u00A'.

Las comillas dobles son para String, debe usar una "secuencia de escape de comillas dobles" (\") dentro de las cadenas donde de lo contrario terminaría la cadena.
Por ejemplo:

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

No es necesario para escapar de la doble cita entre comillas simples.
La siguiente línea es legal en Java:

char doublequote = '"'; 
5

Vamos a considerar estas líneas de códigos (Java):

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

1) primera línea es la concatenación de H y A que resultará en HA (String literal)

2) En segundo lugar estamos agregando los valores de dos caracteres que de acuerdo con la tabla ASCII H = 72 y a = 97 que significa que estamos agregando 72+97 es como ('H'+'a').

3) Vamos a considerar otro caso en el que tendríamos:

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

En este caso se trata de concatenación de cadena A y Char N que resultará en AN.

0

La comilla simple indica el carácter y la comilla doble indica la cadena ..

char c = 'c';

'c' -----> c es un carácter

cadena s = "stackoverflow";

"stackoverflow" ------> stackoverflow es una cadena (es decir, si la colección caracteres)

Cuestiones relacionadas