如何在 Kotlin 的下一行中过滤值
How to filter value in next line in Kotlin
嘿,我正在处理对象列表。我想一个一个地迭代整个对象并在每一行中打印每个索引值。我尝试了一些代码,但没有得到正确的输出。
StringPrint.kt
fun main() {
val newString = createData().joinToString("\n") { "${it.title?: ""} ${it.status?: ""}".trim() }
println(newString)
}
data class Event(val title: String? = null, val status: String? = null)
fun createData() = listOf(
Event("text 1", "abc"),
Event("text 2", "abc"),
Event("text 3", "abc"),
Event("text 4", "abc"),
Event("", null),
Event(null, ""),
Event(null, "3"),
Event("null", ""),
Event("456", "89")
)
输出
text 1 abc
text 2 abc
text 3 abc
text 4 abc
Space Space
Space Space
3
null
456 89
正如您在输出中看到的那样,我添加了 space 关键字,这意味着存在空白字符并且 null。这些我都不要。
E预期输出
text 1 abc
text 2 abc
text 3 abc
text 4 abc
3
456 89
根据@lukas.j的建议我尝试了这个
val newString = createData()
.filterNot { it.title.isNullOrBlank() || it.status.isNullOrBlank() }
.joinToString("\n") { "${it.title?: ""} ${it.status?: ""}".trim() }
println(newString)
Output.kt
text 1 abc
text 2 abc
text 3 abc
text 4 abc
456 89
它没有在控制台中打印值 3。
val newString = createData()
.filterNot { it.title.isNullOrBlank() && it.status.isNullOrBlank() }
.joinToString("\n") { "${it.title?: ""} ${it.status?: ""}".trim() }
嘿,我正在处理对象列表。我想一个一个地迭代整个对象并在每一行中打印每个索引值。我尝试了一些代码,但没有得到正确的输出。
StringPrint.kt
fun main() {
val newString = createData().joinToString("\n") { "${it.title?: ""} ${it.status?: ""}".trim() }
println(newString)
}
data class Event(val title: String? = null, val status: String? = null)
fun createData() = listOf(
Event("text 1", "abc"),
Event("text 2", "abc"),
Event("text 3", "abc"),
Event("text 4", "abc"),
Event("", null),
Event(null, ""),
Event(null, "3"),
Event("null", ""),
Event("456", "89")
)
输出
text 1 abc
text 2 abc
text 3 abc
text 4 abc
Space Space
Space Space
3
null
456 89
正如您在输出中看到的那样,我添加了 space 关键字,这意味着存在空白字符并且 null。这些我都不要。
E预期输出
text 1 abc
text 2 abc
text 3 abc
text 4 abc
3
456 89
根据@lukas.j的建议我尝试了这个
val newString = createData()
.filterNot { it.title.isNullOrBlank() || it.status.isNullOrBlank() }
.joinToString("\n") { "${it.title?: ""} ${it.status?: ""}".trim() }
println(newString)
Output.kt
text 1 abc
text 2 abc
text 3 abc
text 4 abc
456 89
它没有在控制台中打印值 3。
val newString = createData()
.filterNot { it.title.isNullOrBlank() && it.status.isNullOrBlank() }
.joinToString("\n") { "${it.title?: ""} ${it.status?: ""}".trim() }