Есть ли разница между одинарными и двойными кавычками в Java?
101
Используйте одинарные кавычки для литерала char
s, двойные кавычки для литерала String
s, например:
char c = 'a';
String s = "hello";
Их нельзя использовать иначе (например, в Python).
int
в таких контекстах. Так что этого не должно бытьchar
. Оставить несколько голосов против ... упрощенно.Символ - это один символ UTF-16, то есть буква, цифра, знак препинания, табуляция, пробел или что-то подобное.
Литерал char - это либо один символ, заключенный в одинарные кавычки, как это
или escape-последовательность, или даже escape-последовательность unicode:
Стоит отметить, что escape-последовательности Unicode обрабатываются очень рано во время компиляции, и поэтому использование '\ u00A' приведет к ошибке компилятора. Для специальных символов лучше использовать escape-последовательности, например «\ n» вместо «\ u00A».
Поскольку используются двойные кавычки
String
, вы должны использовать "escape-последовательность двойных кавычек" (\"
) внутри строк, где в противном случае строка завершилась бы.Например:
Необязательно экранировать двойные кавычки внутри одинарных кавычек.
Следующая строка допустима в Java:
источник
Рассмотрим эти строки кода (Java):
1) Первая линия конкатенация
H
и ,A
что приведет кHA
(String буквального)2) Во-вторых, мы добавляем значения двух символов, которые в соответствии с таблицей ASCII
H
= 72 иa
= 97, что означает, что мы добавляем72+97
это как('H'+'a')
.3) Рассмотрим другой случай, когда у нас будет:
В этом случае мы имеем дело с конкатенацией String
A
и char,N
что приведет кAN
.источник
Одиночная кавычка обозначает символ, а двойная кавычка обозначает строку.
char c = 'c';
'c' -----> c - это символ
Строка s = "stackoverflow";
"stackoverflow" ------> stackoverflow - это строка (т.е. коллекция символов)
источник