Есть ли разница в одинарных и двойных кавычках в Java? - PullRequest
91 голосов
/ 13 января 2009

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

Ответы [ 4 ]

133 голосов
/ 13 января 2009

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

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

Их нельзя использовать как-то иначе (например, в Python).

33 голосов
/ 13 января 2009

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

Литерал-символ - это либо один символ, заключенный в одинарные кавычки, например:

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 = '"';
8 голосов
/ 17 марта 2017

Давайте рассмотрим следующие строки кодов (Java):

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

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

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

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

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

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

4 голосов
/ 13 апреля 2017

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

char c = 'c';

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

String s = "stackoverflow";

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...