Есть ли разница между одинарными и двойными кавычками в Java?
Ответы:
Используйте одинарные кавычки для литерала char
s, двойные кавычки для литерала String
s, например:
char c = 'a';
String s = "hello";
Их нельзя использовать иначе (например, в Python).
int
в таких контекстах. Так что этого не должно быть char
. Оставить несколько голосов против ... упрощенно.
Символ - это один символ UTF-16, то есть буква, цифра, знак препинания, табуляция, пробел или что-то подобное.
Литерал char - это либо один символ, заключенный в одинарные кавычки, как это
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's at the door?\"");
Необязательно экранировать двойные кавычки внутри одинарных кавычек.
Следующая строка допустима в Java:
char doublequote = '"';
Рассмотрим эти строки кода (Java):
System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169
1) Первая линия конкатенация H
и , A
что приведет к HA
(String буквального)
2) Во-вторых, мы добавляем значения двух символов, которые в соответствии с таблицей ASCII H
= 72 и a
= 97, что означает, что мы добавляем 72+97
это как ('H'+'a')
.
3) Рассмотрим другой случай, когда у нас будет:
System.out.println("A"+'N');//AN
В этом случае мы имеем дело с конкатенацией String A
и char, N
что приведет к AN
.
Одиночная кавычка обозначает символ, а двойная кавычка обозначает строку.
char c = 'c';
'c' -----> c - это символ
Строка s = "stackoverflow";
"stackoverflow" ------> stackoverflow - это строка (т.е. коллекция символов)