我試圖接受來自Kotlin控制檯的輸入,但這很難,因爲我對語法不太確定。在Kotlin閱讀控制檯輸入
我與主要
fun main(args: Array<String>) {
}
我應該在這之後進入了麼?我知道println()
和readline()
是涉及,但我不知道如何構造它們。
目的:提示用戶輸入一個數字,輸入的數字乘以6,程序返回結果到控制檯顯示。
我試圖接受來自Kotlin控制檯的輸入,但這很難,因爲我對語法不太確定。在Kotlin閱讀控制檯輸入
我與主要
fun main(args: Array<String>) {
}
我應該在這之後進入了麼?我知道println()
和readline()
是涉及,但我不知道如何構造它們。
目的:提示用戶輸入一個數字,輸入的數字乘以6,程序返回結果到控制檯顯示。
這裏是A + B實施例在科特林:
fun main(vararg args: String) {
val (a, b) = readLine()!!.split(' ')
println(a.toInt() + b.toInt())
}
或
fun main(vararg args: String) {
val (a, b) = readLine()!!.split(' ').map(String::toInt)
println(a + b)
}
或
fun readInts(separator: Char = ' ') = readLine()!!.split(separator).map(String::toInt)
fun main(vararg args: String) {
val (a, b) = readInts()
println(a + b)
}
或
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)
}
或
with(Scanner(System.`in`)) {
val a = nextInt()
val b = nextInt()
println(a + b)
}
當心Scanner是somewhat slow。在一些情況下,這可能很重要,例如競爭性編程,其中通過用普通的readLine代替Scanner,程序在大輸入上的執行速度可以提高兩倍。
我總有一天,一個簡潔,跨平臺,高性能,通用的控制檯和文件輸入分析支持將在Kotlin stdlib中引入。像readInt
,readLong
等全球和Reader
擴展功能。
獎金
有時你開始與控制檯輸入/輸出,但這時需要切換到文件。 用文件流變量預先讀取每個讀取或寫入調用變得非常繁瑣。
這裏是科特林魔法和平,允許只是包裝不變控制檯代碼有幾行,以迫使其讀取和寫入文件,也確保他們正確關閉:
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)
}
}
包裝線可以在發生需要切換回控制檯時快速註釋掉。
謝謝。我可以鏈接到這些嗎? – siur
@siur,https://discuss.kotlinlang。org/t/taking-inputs/152/2, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/read-line.html, https://github.com/JetBrains/ kotlin/blob/master/libraries/stdlib/src/kotlin/io/Console.kt – Vadzim
下面是更多的實例:http://codeforces.com/blog/entry/45454?#comment-300490 – Vadzim
使用輸入行()接受來自用戶的輸入, 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()
}
這是一門功課? – miensol
@miensol Nope只要我想學習一門新語言 – siur