Что подразумевается под «escape-последовательностью» в определении строковых литералов Java? - PullRequest
0 голосов
/ 18 сентября 2011

Из спецификации языка Java, Раздел 3.10.5 Строковые литералы :

Символы могут быть представлены escape-последовательностями - одна escape-последовательность для символов в диапазоне от U + 0000 до U + FFFF, две escape-последовательности для единиц суррогатного кода UTF-16 символов в диапазоне от U + 010000 до U + 10FFFF .

Что это значит? Если символ попадает в диапазон от U + 0000 до U + FFFF, то можно использовать одну escape-последовательность. Насколько отличается одна escape-последовательность от двух escape-последовательностей?

К escape-последовательности относится ли он к \n, \r и т. П.? Это одна или две escape-последовательности?

Ответы [ 2 ]

1 голос
/ 18 сентября 2011

От u + 0000 до u + ffff, каждое число (если хотите) представляет собой символы. Однако некоторые символы Юникода (так называемые суррогатные пары) представляют собой комбинацию двух чисел от u + 010000 до u + 10ffff. Таким образом, если у вас есть число от u + 010000 до u + 10ffff, то для представления действительного символа требуется второй.

0 голосов
/ 18 сентября 2011

Под escape-последовательностью они подразумевают такие вещи, как \u0000 (который можно использовать в литерале String для представления символа Юникода).

...