Почему я не могу использовать \ u000D и \ u000A как CR и LF в Java?

Почему я не могу использовать \ u000D и \ u000A как CR и LF в Java? Это ошибка при компиляции кода:

illegal line end in character literal 

Экземпляры Unicode предварительно обрабатываются перед запуском компилятора. Поэтому, если вы помещаете \u000A в строковый литерал следующим образом:

 String someString = "foo\u000Abar"; 

Он будет скомпилирован точно так, как если бы вы написали:

 String someString = "foo bar"; 

Придерживайтесь \r (возврат каретки, 0x0D ) и \n (строка, 0x0A )

Бонус: вы всегда можете получать удовольствие от этого, особенно учитывая ограничения на большинство синтаксических маркеров. В следующий раз, когда у вас есть секунда, попробуйте запустить этот код:

 public class FalseIsTrue { public static void main(String[] args) { if ( false == true ) { //these characters are magic: \u000a\u007d\u007b System.out.println("false is true!"); } } } 

Поскольку он попадает в диапазон символов Unicode Control

Это U+0000–U+001F и U+007F .

Управляющие символы Unicode используются для управления интерпретацией или отображением текста, но сами эти символы не имеют визуального или пространственного представления.

Они могут быть экранированы с помощью \ как описано в приведенном выше ответе @Mark

ОТ RFC :

2.5. Струны

Представление строк аналогично условностям, используемым в семействе языков программирования C. Строка начинается и заканчивается кавычками. Все символы Юникода могут быть помещены в кавычки, за исключением символов, которые должны быть экранированы: кавычка, обратный солидус и управляющие символы (U + 0000 через U + 001F).

Любой символ может быть экранирован.

  • Разве это не на больших байтовых машинах UTF-8, отличных от маленьких конечных машин? Так почему же тогда UTF-8 не требует спецификации?
  • MATLAB: как отображать текст в кодировке UTF-8, считанный из файла?
  • Каков полный диапазон для китайских иероглифов в Юникоде?
  • Каковы различия между utf8_general_ci и utf8_unicode_ci?
  • В чем разница между _tmain () и main () в C ++?
  • 😃 (и другие символы Unicode) в идентификаторах, недопустимых g ++
  • Windows 10 - код Alt приводит к неправильному символу
  • Преобразование TMemoryStream в 'String' в Delphi 2009
  • Почему выполняется выполнение кода Java в комментариях с некоторыми символами Unicode?
  • Лучший способ изменить строку
  • Ручное преобразование кодов Unicode в UTF-8 и UTF-16
  • Давайте будем гением компьютера.