Есть ли разница между одиночными и двойными кавычками в Java?

Есть ли разница между одиночными и двойными кавычками в Java?

Ответ 1

Используйте одинарные кавычки для литерала char s, двойные кавычки для литерала String s, например:

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

Они не могут использоваться каким-либо другим способом (например, в Python).

Ответ 2

A char - это один символ UTF-16, то есть буква, цифра, знак препинания, вкладка, пробел или что-то подобное.

A char literal - либо один символ, заключенный в одиночные кавычки, такие как

char myCharacter = 'g'; 

или escape-последовательность или даже escape-последовательность unicode:

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

Стоит отметить, что escape-последовательности Unicode обрабатываются очень рано во время компиляции, и поэтому использование '\ u00A' приведет к ошибке компилятора. Для специальных символов лучше использовать escape-последовательности, т.е. '\n' вместо '\ u00A'.

Двойные кавычки для String, вы должны использовать "escape-последовательность двойных кавычек" (\") внутри строк, где иначе она завершила бы строку.
Например:

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

Нет необходимости избегать двойной кавычки внутри одинарных кавычек.
Следующая строка является законной в Java:

char doublequote = '"';

Ответ 3

Рассмотрим эти строки кодов (Java):

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

1) Первая строка - это конкатенация H и A, которая приведет к HA (строковый литерал)

2) Во-вторых, мы добавляем значения двух char, которые в соответствии с таблицей ASCII H= 72 и A= 97, что означает, что мы добавляем 72+97, как ('H'+'a').

3) Рассмотрим другой случай, когда мы имели бы:

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

В этом случае мы имеем дело с конкатенацией String A и char N, что приведет к AN.

Ответ 4

Одинарная кавычка указывает символ, а двойная кавычка указывает строку..

char c = 'c';

'c' ----- > c - символ

String s = "stackoverflow";

"stackoverflow" ------ > stackoverflow - это строка (например, коллекция, если символы)