Стандартный ввод
Для чтения стандартного ввода в Java предусмотрен класс Scanner. В Kotlin есть два основных способа чтения стандартного ввода: класс Scanner, аналогичный Java, и функция readln().
Чтение стандартного ввода с помощью Java Scanner
В Java стандартный ввод обычно осуществляется через объект System.in. Нужно импортировать класс Scanner, создать объект и использовать такие методы, как .nextLine() и .nextInt(), для чтения данных разных типов:
//Java implementation
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Reads a single line of input. For example: Hi there!
System.out.print("Enter a line: ");
String line = scanner.nextLine();
System.out.println("You entered: " + line);
// You entered: Hi there!
// Reads an integer. For example: 08081990
System.out.print("Enter an integer: ");
int number = scanner.nextInt();
System.out.println("You entered: " + number);
// You entered: 08081990
scanner.close();
}
}
Использование Java Scanner в Kotlin
Благодаря совместимости Kotlin с библиотеками Java, Java Scanner можно использовать в коде Kotlin без дополнительной настройки.
Чтобы использовать Java Scanner в Kotlin, нужно импортировать класс Scanner и инициализировать его, передав объект System.in, который представляет поток стандартного ввода и определяет способ чтения данных. Для чтения значений, отличных от строк, можно использовать доступные методы чтения, например .nextLine(), .next() и .nextInt():
// Imports Java Scanner
import java.util.Scanner
fun main() {
// Initializes the Scanner
val scanner = Scanner(System.`in`)
// Reads a whole string line. For example: "Hello, Kotlin"
val line = scanner.nextLine()
print(line)
// Hello, Kotlin
// Reads a string. For example: "Hello"
val string = scanner.next()
print(string)
// Hello
// Reads a number. For example: 123
val num = scanner.nextInt()
print(num)
// 123
}
Другие полезные методы для чтения ввода с помощью Java Scanner: .hasNext(), .useDelimiter() и .close():
Метод
.hasNext()проверяет, есть ли во вводе дополнительные данные. Он возвращает логическое значениеtrue, если остались элементы для перебора, иfalse, если элементов во вводе больше нет.Метод
.useDelimiter()задаёт разделитель для считываемых элементов. По умолчанию разделителем являются пробельные символы, но можно указать и другие символы. Например,.useDelimiter(",")считывает элементы ввода, разделённые запятыми.Метод
.close()закрывает поток ввода, связанный со Scanner, и предотвращает дальнейшее использование Scanner для чтения ввода.
Чтение стандартного ввода с помощью readln()
В Kotlin, помимо Java Scanner, есть функция readln(). Это самый простой способ чтения ввода. Эта функция считывает строку текста из стандартного ввода и возвращает её в виде строки:
// Reads a string. For example: Charlotte
val name = readln()
// Reads a string and converts it into an integer. For example: 43
val age = readln().toInt()
println("Hello, $name! You are $age years old.")
// Hello, Charlotte! You are 43 years old.
Дополнительную информацию см. в разделе Чтение стандартного ввода.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/standard-input.html