В Kotlin нет универсальной стандартной функции clearConsole(). Консоль принадлежит операционной системе или IDE, поэтому очистка зависит от окружения. Для учебной программы чаще используют ANSI escape:
fun clearConsole() {
print("\u001b[H\u001b[2J")
System.out.flush()
}
Вызов:
fun main() {
println("Старый текст")
readln()
clearConsole()
println("Новый экран")
}
Почему это может не сработать
ANSI escape хорошо работает во многих терминалах Linux, macOS, Windows Terminal и современных консолях. Но в некоторых IDE Run window управляющие символы могут отображаться как текст или игнорироваться
Если пример не очищает окно в IntelliJ IDEA, попробуйте запустить программу в обычном терминале
Вариант через системные команды
Можно вызвать команду ОС:
fun clearConsoleCommand() {
val os = System.getProperty("os.name").lowercase()
if (os.contains("windows")) {
ProcessBuilder("cmd", "/c", "cls").inheritIO().start().waitFor()
} else {
ProcessBuilder("clear").inheritIO().start().waitFor()
}
}
Этот вариант ближе к настоящей очистке терминала, но он сложнее и зависит от доступности команд cls или clear
Что выбрать новичку
Для простой учебной игры или меню можно не очищать консоль, а печатать разделитель:
fun printSeparator() {
repeat(30) {
println()
}
}
Да, это не настоящая очистка. Зато работает почти везде и не отвлекает от логики программы
Для меню лучше перерисовывать экран
Если вы делаете консольное меню, вынесите отрисовку в отдельную функцию:
fun renderMenu() {
clearConsole()
println("1. Новая игра")
println("2. Настройки")
println("0. Выход")
}
Так вам будет проще заменить способ очистки позже. Например, в IDE можно временно поставить пустые строки, а в настоящем терминале вернуть ANSI escape
Альтернатива для отладки
Во время отладки консоль лучше не очищать. Старые строки помогают понять, где программа пошла не туда. Можно добавить флаг:
const val DEBUG = true
fun safeClearConsole() {
if (!DEBUG) {
clearConsole()
}
}
Пока вы проверяете ввод и ветки меню, оставьте DEBUG = true. Когда логика работает, переключите на false и получите более чистый экран
Как проверить
- Запустите программу в терминале.
- Напечатайте несколько строк.
- Вызовите
clearConsole(). - Посмотрите, исчез ли старый текст.
Если не исчез, проверьте окружение: IDE, терминал, Windows Terminal, PowerShell, macOS Terminal или Linux shell
Частые ошибки
Ждать одинакового поведения везде
Консоль в IntelliJ IDEA и настоящий терминал могут вести себя по-разному
Очищать консоль ради красоты
В учебных задачах важнее понятная логика. Если очистка мешает отладке, временно выключите ее
Запускать внешние команды без причины
ProcessBuilder мощный, но для простого меню часто достаточно ANSI или пустых строк
Что почитать дальше по Kotlin
Если нужен общий маршрут по теме, откройте рубрику Kotlin. Для соседних задач пригодятся эти разборы:
- Как считывать нажатия клавиш в Kotlin: консоль и Android
- Coroutines в Kotlin: первый async-пример
- Inline в Kotlin: что это и когда использовать
- Kotlin Android: первый экран без перегруза



