【问题标题】: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()
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-03
      • 2018-03-03
      • 2012-11-10
      • 1970-01-01
      • 2013-01-08
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多