Spec-Zone.ru › Kotlin 2

Чтение стандартного ввода

Используйте функцию readln() для чтения данных из стандартного ввода. Она считывает всю строку как строку:

// Reads and stores the user input in a variable. For example: Hi there!
val myInput = readln()

println(myInput)
// Hi there!

// Reads and prints the user input without storing it in a variable. For example: Hi, Kotlin!
println(readln())
// Hi, Kotlin!

Также можно считать многострочный ввод как одну строку. Используйте функцию joinToString(), чтобы объединить строки:

val input = generateSequence(::readlnOrNull)
  .joinToString("\n")

Используйте readlnOrNull() вместо readln(), чтобы считывать ввод до конца файла без выброса исключения.

Для работы с типами данных, отличными от строк, можно преобразовать ввод с помощью функций преобразования, таких как .toInt(), .toLong(), .toDouble(), .toFloat() или .toBoolean(). Можно считывать несколько значений разных типов данных и сохранять каждое из них в отдельной переменной:

// Converts the input from a string to an integer value. For example: 12
val myNumber = readln().toInt()
println(myNumber)
// 12

// Converts the input from a string to a double value. For example: 345 
val myDouble = readln().toDouble()
println(myDouble)
// 345.0

// Converts the input from a string to a boolean value. For example: true
val myBoolean = readln().toBoolean()
println(myBoolean)
// true

Эти функции преобразования предполагают, что пользователь вводит корректное представление целевого типа данных. Например, преобразование "hello" в целое число с помощью .toInt() приведёт к исключению, поскольку функция ожидает, что введённая строка содержит число.

Чтобы считать несколько элементов ввода, разделённых разделителем, используйте функцию .split(), указав разделитель. В следующем примере кода данные считываются из стандартного ввода, разбиваются на список элементов с помощью разделителя, а каждый элемент списка преобразуется в определённый тип:

// Reads the input, assuming the elements are separated by spaces, and converts them into integers. For example: 1 2 3 
val numbers = readln().split(' ').map { it.toInt() }
println(numbers)
//[1, 2, 3] 

// Reads the input, assuming the elements are separated by commas, and converts them into doubles. For example: 4,5,6
val doubles = readln().split(',').map { it.toDouble() }
println(doubles)
//[4.0, 5.0, 6.0]

Другой способ считывания пользовательского ввода в Kotlin/JVM описан в разделе Стандартный ввод с помощью Java Scanner.

Безопасная обработка стандартного ввода

Для безопасного преобразования пользовательского ввода из строки в целое число можно использовать функцию .toIntOrNull(). Эта функция возвращает целое число, если преобразование выполнено успешно. Однако, если ввод не является корректным представлением целого числа, она возвращает null:

// Returns null if the input is invalid. For example: Hello!
val wrongInt = readln().toIntOrNull()
println(wrongInt)
// null

// Converts a valid input from a string to an integer. For example: 13
val correctInt = readln().toIntOrNull()
println(correctInt)
// 13

Функция readlnOrNull() также помогает безопасно обрабатывать пользовательский ввод. Функция readlnOrNull() считывает данные из стандартного ввода и возвращает null, если достигнут конец ввода, тогда как readln() в таком случае выбрасывает исключение.

29 июня 2026 г.
Диапазоны и прогрессииТребования к opt-in

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/read-standard-input.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API