
- •Кодування
- •Аналіз програми
- •1.2.1. Пробіли
- •1.2.2. Коментарі
- •1.2.3. Лексеми
- •Види лексем
- •Ідентифікатори
- •Ключові слова
- •Літерали
- •Цілочислові літерали
- •Дробові літерали
- •Логічні літерали
- •Символьні літерали
- •Рядкові літерали
- •Nullлітерал
- •Розділювачі
- •Оператори
- •Висновки
- •Доповнення: Робота з операторами
Логічні літерали
truefalse
Символьні літерали
‘a’ // латинська буква a
‘ ‘ // пробіл
‘
’
//
грецька буква каппа
(“”)
‘\u0041’ // A
‘\u0410’ // A
‘\u0391’ // A
Також дозволяється спеціальний запис для опису символу через його код (див. тему “Кодування”). Приклади:
‘\u0041’ // латинська буква A
‘\u0410’ // російська буква A
‘\u0391’ // грецька буква A
Символьний літерал повинен містити строго один символ або спеціальний набір, який починається з \. Для запису спеціальних символів (не відображуваних і службових, таких як “, ‘, \) використовуються такі позначення:
\b \u0008 backspace BS – забивання
\t \u0009 horizontal tab HT – табуляція
\n \u000a linefeed LF – кінець рядка
\f \u000c form feed FF – кінець сторінки
\r \u000d carried return CR – повернення каретки
\” \u0022 doublequote “ – подвійний апостроф
\’ \u0027 singlequote ‘ – одинарний апостроф
\\ \u005c backslash \ – обернена похила рисочка
\вісімковий код \u0000 to \u00ff – код символу у вісімковому форматі.
Перша колонка описує стандартні позначення спеціальних символів, які використовуються в Java-програмах. Друга колонка представляє їх в стандартному виглядіUnicode-символів. Третя колонка містить англійські й українські описи. Використання \ в комбінації з іншими символами зумовить помилку компіляції.
Підтримка введення символів через вісімковий код забезпечує сумісність зC. Наприклад,
‘\101’ // Еквівалентно ‘\u0041’
Однак так можна задати лише символи від \u0000 до \u00ff (тобто з кодом від 0 до 255) томуUnicode-набори переважають.
Оскільки обробка Unicode-наборів (\uhhhh)здійснюється раніше лексичного аналізу, то наступний приклад є помилка:
‘\u000a’ // символ кінця рядка
Компілятор спочатку перетворить \u000a в символ кінця рядка, і апострофи виявляться на різних рядка коду, що є помилкою. Потрібно використовувати спеціальну послідовність:
‘\n’ // правильне позначення кінця рядка
Аналогічно для символу \u000d (повернення каретки) необхідно використовувати позначення \r.
Спеціальні символи можна використовувати в складі як символьних, так й рядкових літералів.
Рядкові літерали
Рядкові літерали складаються з набору символів і записуються в подвійних апострофах. Довжина може бути нульовою або як завгодно великою. Будь-який символ можна подати за допомогою спеціальної послідовності, яка починається з \ (див. “Символьні літерали”).
”” // літерал нульової довжини
”\”” // літерал, який складається з одного символу ”
”Простий текст” / / літерал довжини 13
Рядковий літерал не можна розбити на кілька рядків в програмі. Якщо потрібне текстове значення, яке складається з кількох рядків, то необхідно скористуватися спеціальними символами \nабо \r. Якщо текст надто довгий, щоб помістився в одному рядку, то можна використати оператор конкатенації рядків +. Приклади рядкових літералів:
// вираз – стала, складена з двох літералів
”Довгий текст” +
”з перенесенням”
/*
* Рядковий літерал, текст якого має два рядки
*Hello, world!
*Hello!
/*
“Hello, world!\r\nHello!”
На рядкові літерали розповсюджуються таки ж правила, як і на символьні щодо використання символів нового рядка\u000a і \u000d.
Кожний рядковий літерал є екземпляром класу String. Це визначає деякі незвичайні властивості рядкових літералів, які будуть розглянуті пізніше.