【问题标题】:how to read mutliple lines of string into one variable using readln() in kotlin?如何使用 kotlin 中的 readline() 将多行字符串读入一个变量?
【发布时间】:2022-10-16 03:19:47
【问题描述】:
例子:
一个变量
val str = readln().replace("[^A-Za-z0-9 ] \\s+".toRegex(),"").trim()
应该读取多行输入值,输入值会是这样的
heading
----------
topic1
topic2
或者像这样
heading
-------
a) topic1
b) topic2
输入可能包含特殊字符或制表符或空格,我们也需要删除它们
【问题讨论】:
标签:
kotlin
kotlin-multiplatform
【解决方案1】:
我不知道你的正则表达式想要做什么,但这不是你的问题。
你怎么知道用户何时完成了他们的输入——一个特殊的词或一个空行?
假设一个空行,这是获取所有内容的方法
println("Enter something:")
var lines = ""
do {
val line = readLine()
lines += "${clean(line)}
"
} while (!line.isNullOrBlank())
println("User input:
$lines")
private fun clean(line: String?): String? {
return line?.replace("[^A-Za-z0-9 ] \s+".toRegex(),"")?.trim()
}