tags:

views:

1662

answers:

2

Is there a difference between single and double quotes in Java?

+22  A: 

Use single quotes for chars, double quotes for Strings, like so:

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

They cannot be used any other way around (like in Python, for example).

Yuval A
And, of course, this behavior is borrowed from C (which probably got it somewhere else, I presume).
JesperE
+10  A: 

A char is a single UTF-16 character, that is a letter, a digit, a punctuation mark, a tab, a space or something similar.

A char literal is either a single one character enclosed in single quote marks like this

char myCharacter = 'g';

or an escape sequence, or even a unicode escape sequence:

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

It is worth noting that Unicode escape sequences are processed very early during compilation and hence using '\u00A' will lead to a compiler error. For special symbols it is better to use escape sequences instead, i.e. '\n' instead of '\u00A' .

Double quotes being for String, you have to use a "double quote escape sequence" (\") inside strings where it would otherwise terminate the string.
For instance:

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

It isn't necessary to escape the double quote inside single quotes.
The following line is legal in Java:

char doublequote = '"';
VonC