Экранирование в текстовых блоках
Используйте новые escape-последовательности
«Экранирование в текстовых блоках» — бесплатный урок Java Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Новые escape-последовательности для текстовых блоков
Текстовые блоки поддерживают все обычные escape-последовательности, а также две новые, предназначенные специально для них: продолжение строки \ и явный пробел \s. Они обеспечивают точный контроль над результатом.
Продолжение строки с помощью обратной косой черты
Завершение строки символом \ сообщает Java, что не нужно вставлять в этом месте перевод строки. Следующая строка присоединяется к текущей. Это позволяет переносить длинные логические строки для удобства чтения.
public class Main {
public static void main(String[] args) {
String text = """
This is one \
single long line.
""";
System.out.print(text);
}
}Преимущества продолжения строки
Вы можете оформить исходный код в нескольких физических строках, создав при этом одну строку результата. Это удобно для длинных предложений или URL.
public class Main {
public static void main(String[] args) {
String url = """
https://example.com/\
path/to/\
resource
""";
System.out.print(url);
}
}Escape-последовательность пробела \s
Конечные пробелы обычно удаляются. Escape-последовательность \s вставляет обычный пробел, который переживает удаление и позволяет сохранить значимые пробельные символы в конце строки.
public class Main {
public static void main(String[] args) {
String text = """
red \s
green\s
""";
for (String line : text.split("\n")) {
System.out.println("|" + line + "|");
}
}
}Сохранение выравнивания по столбцам
\s удобно использовать в таблицах фиксированной ширины, где конечные пробелы важны для выравнивания.
public class Main {
public static void main(String[] args) {
String table = """
NAME\s\s\sAGE
Alice\s\s30
""";
System.out.print(table);
}
}Стандартные escape-последовательности по-прежнему работают
Классические escape-последовательности, такие как \t для табуляции и \n для перевода строки, также работают внутри текстовых блоков.
public class Main {
public static void main(String[] args) {
String text = """
Col1\tCol2
A\tB
""";
System.out.print(text);
}
}Экранирование тройных кавычек
Чтобы включить в текстовый блок три идущие подряд двойные кавычки, экранируйте хотя бы одну из них с помощью \", чтобы Java не приняла их за закрывающий разделитель.
public class Main {
public static void main(String[] args) {
String text = """
He said \"\"\" loudly.
""";
System.out.print(text);
}
}Буквальная обратная косая черта
Чтобы поместить в результат настоящую обратную косую черту, запишите \\, как и в обычных строках. Это важно для путей Windows и шаблонов регулярных выражений.
public class Main {
public static void main(String[] args) {
String path = """
C:\\Users\\Alice
""";
System.out.print(path);
}
}Совместное использование продолжения строки и \s
Вы можете сочетать обе новые escape-последовательности. Здесь продолжение строки объединяет строки, а \s гарантирует наличие пробела в месте объединения.
public class Main {
public static void main(String[] args) {
String sentence = """
Hello\s\
World
""";
System.out.print(sentence);
}
}Предотвращение случайных переводов строк
Без продолжения строки каждый перенос строки в исходном коде становится переводом строки в результате. Добавление \ в конец строки удаляет его и даёт Вам полный контроль над расположением переносов.
public class Main {
public static void main(String[] args) {
String joined = """
part1\
part2\
part3
""";
System.out.println(joined);
}
}Одинарная кавычка не требует экранирования
Внутри текстового блока одна двойная кавычка " сама по себе допустима. Внимания требуют только последовательности, которые могут образовать закрывающие """.
public class Main {
public static void main(String[] args) {
String quote = """
She said "hi" to me.
""";
System.out.print(quote);
}
}Быстрая проверка
Что происходит, если завершить строку текстового блока одной обратной косой чертой \?
Повторение
Вы изучили escape-последовательности текстовых блоков:
\в конце строки = продолжение строки (без перевода строки)\s= пробел, который сохраняется после удаления конечных пробельных символов- Стандартные
\t,\nи\\по-прежнему работают - Экранируйте кавычку, чтобы встроить
""" - Одиночная
"не требует экранирования
Часто задаваемые вопросы
Урок «Экранирование в текстовых блоках» бесплатный?
Да — полный текст урока «Экранирование в текстовых блоках» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Экранирование в текстовых блоках»?
Используйте новые escape-последовательности Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Экранирование в текстовых блоках»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объявление текстовых блоков
- Отступы и удаление пробелов
- Экранирование в текстовых блоках
- Варианты использования: JSON и SQL