我可以在 Kotlin/java.util.Scanner 中跳过分隔符而不重复它吗?

问题描述 投票:0回答:1

考虑像这样的字符串

"1: 2, 3, 4"
^^  ^^^^^^^
id  items

我可以使用

来解析它
val sc = Scanner("1: 2, 3, 4")
val id = sc.useDelimiter(": ").nextInt()
val items = sc.skip(": ").useDelimiter(", ").asSequence().toList()
                    ^^^^

但我不想重复第一个分隔符。有没有不重复的解决办法?

kotlin java.util.scanner
1个回答
0
投票

使用正则表达式,即

|
:

import java.util.Scanner

fun main() {
    val input = "1: 2, 3, 4"
    val sc = Scanner(input).useDelimiter(": |, ")
    val id = sc.nextInt()
    val items = sc.asSequence().toList().map { it.toInt() }
    println("ID: $id")
    println("Items: $items")
}

输出:

ID: 1
Items: [2, 3, 4]
© www.soinside.com 2019 - 2024. All rights reserved.