sintaxis read inicializar input console stdin kotlin

input - read - Entrada de consola de lectura en Kotlin



sintaxis en kotlin (4)

Estoy intentando aceptar entradas de la consola en Kotlin, pero es difícil porque no estoy muy seguro acerca de la sintaxis.

Empiezo con la principal

fun main(args: Array<String>) { }

¿A QUÉ debo ingresar después de esto? Soy consciente de que están implicados println() y readline() pero no sé cómo estructurarlos.

Objetivo: solicitar al usuario que ingrese un número, el número ingresado se multiplica por 6, el programa devuelve el resultado a la pantalla de la consola.


Aquí hay ejemplos de A + B en Kotlin leyendo desde stdin:

fun main(vararg args: String) { val (a, b) = readLine()!!.split('' '') println(a.toInt() + b.toInt()) }

o

fun main(vararg args: String) { val (a, b) = readLine()!!.split('' '').map(String::toInt) println(a + b) }

o

fun readInts(separator: Char = '' '') = readLine()!!.split(separator).map(String::toInt) fun main(vararg args: String) { val (a, b) = readInts() println(a + b) }

o

import java.util.Scanner fun main(vararg args: String) { val input = Scanner(System.`in`) val a = input.nextInt() val b = input.nextInt() println(a + b) }

o

with(Scanner(System.`in`)) { val a = nextInt() val b = nextInt() println(a + b) }

Tenga en cuenta que el Scanner es un poco lento . Esto puede ser importante en algunos casos, como la programación competitiva, en la que la ejecución del programa en entradas grandes se puede hacer hasta dos veces más rápido simplemente reemplazando el Scanner con la línea de readLine simple.

hope algún día se incorpore en Kotlin stdlib un soporte conciso, multiplataforma, de rendimiento, universal tanto para la consola como para el ingreso de archivos. Al igual que readInt , readLong , etc, las funciones de extensión global y Reader .

Prima

A veces, comienza con la entrada / salida de la consola, pero luego necesita cambiar a archivos. Se vuelve demasiado tedioso para anteponer cada lectura o escritura de llamada con la variable de flujo de archivos.

Aquí está la tranquilidad de la magia de Kotlin que le permite simplemente envolver el código de la consola sin cambios con un par de líneas para forzarla a leer y escribir en los archivos y asegurarse de que estén cerrados correctamente:

fun <T : Closeable, R> T.useWith(block: T.() -> R): R = use { with(it, block) } File("a.in").bufferedReader().useWith { File("a.out").printWriter().useWith { val (a, b) = readLine()!!.split('' '').map(String::toInt) println(a + b) } } Scanner(File("b.in")).useWith { PrintWriter("b.out").useWith { val a = nextInt() val b = nextInt() println(a + b) } }

Las líneas de envoltura se pueden comentar rápidamente cuando ocurra la necesidad de volver a la consola.


De forma predeterminada, readLine toma la entrada como una cadena aInt puede usarse para convertirla en entero

fun main(args:Array<String>){ var first: Int var second: Int println("Enter the first number") first = readLine()!!.toInt() println("Enter the second number") second= readLine()!!.toInt() println("The sum is ${first + second}") }


Use readLine () para recibir información del usuario, ATQ:

fun main(args:Array<String>){ print("Enter a number") var variableName:Int = readLine()!!.toInt() // readLine() is used to accept the String value and ".toInt()" will convert the string to Int. var result:Int= variableName*6 print("The output is:$result") }


fun readInts(separator: Char = '' '') = readLine()!!.split(separator).map(String::toInt) fun main(args: Array<String>) { var A : List<Int> = readInts() }