繁体   English   中英

Kotlin String.split().filterIndexed() 返回大小为 1 的空列表

[英]Kotlin String.split().filterIndexed() is returning empty list with size 1

fun main() {

val delDetails = "2-hello,3-world,4-why,5-is,6-it,7-like,8-this"

val delDetailEmpty = ""
val delPositions = delDetailEmpty.split("-",",").filterIndexed { index, _ -> index % 2 ==0}.toMutableList()

println(delPositions.size) //it returns empty list [] with size 1
println(delDetailEmpty.toList().size) //this returns empty list [] with size 0
}

println(delPositions.size) 返回大小为 1 的空列表 []

而 println(delDetailEmpty.toList().size) 这将返回大小为 0 的空列表 []

首先,一个空列表的大小总是为零。

您正在使用 kotlin 的内置扩展函数。 它们的功能因情况而异。 您可以通过单击扩展功能来检查实际代码。

println(delPositions.size) //它返回空列表 [] 大小为 1

CharSequence.split(...)在您的情况下返回一个带有空字符串的列表,但不是一个空列表 因此,列表的大小为 1。

println(delDetailEmpty.toList().size) //返回空列表[],大小为0

String.toList()空字符串返回一个空的 Char 列表。 此列表的大小为 0。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM