考虑这样的字符串

"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()
                    ^^^^

但我不想重复第一个分隔符.有什么不重复的解决方案吗?

我已经很高兴有一个skipCurrentDelimiter(),但没有找到这样的东西.

推荐答案

如何使用delimiter来获得当前的模式,然后使用skip

sc.skip(sc.delimiter())
    .useDelimiter(", ").asSequence().toList()

Kotlin相关问答推荐

关键字';在When Kotlin When-语句中

如何更改默认推断没有接收者的函数类型?

在Kotlin lambda的参数中如何指定函数类型?

Kotlin 复制列表中的项目以创建具有相同数据的不同对象的新列表

Kotlin:我可以将函数分配给 main 的伴随对象中的变量吗?

Kotlin 数据类中的大量参数

如何有效地填充 Gradle Kotlin DSL 中的额外属性?

Kotlin 方法重载

在java代码中使用kotlin库

Android插件2.2.0-alpha1无法使用Kotlin编译

Kotlin中具有多个参数的绑定适配器

创建Spring和#180的实例;Kotlin中的参数化类型引用

使用导航组件在BottomNavigationView中传递参数

Kotlin:具有多个不同类型设置器的单个属性

未解决的参考 dagger 2 + kotlin + android gradle

我们如何在Java注释声明中引用Kotlin常量?

Kotlin lambda 语法混淆

Kotlin 中更好的回调方法是什么?侦听器与高阶函数

Kotlin,什么时候按map授权?

Kotlin 对象 vs 伴生对象(companion-object) vs 包作用域(package scoped)方法