如何一次与多个变量进行交互和检查 kotlin
How to interact and check with multiple variables at once kotlin
有这样的任务:name
、surname
、patronymic
等字段到达输入
在最简单的情况下,所有这些字段都填充了数据,因此它们的输出如下所示:
"name" + "surname" + "patronymic"
但是,有时会缺少姓氏字段,因此输出应如下所示:
"name" + "patronymic"
另一种情况,当没有父名时,这种情况应该是这样显示的:
"name" + "surname"
和name
一样的东西,可能是少了,应该怎么看,我想你已经猜到了。
我知道您很可能需要以某种方式使用 if-else
来实现所有情况下的预期结果,但在我看来,代码太多了。是否有可能以某种方式解决这个问题并处理所有选项?
val name = "name"
val surname = "surname"
val patronymic = "patronymic"
val result = listOf(name, surname, patronymic)
.filter { it.isNotBlank() }
.joinToString(" ")
println(result)
或者使用辅助函数:
fun List<String>.concatWithBlank() = this.filter { it.isNotBlank() }.joinToString(" ")
val result = listOf(name, surname, patronymic).concatWithBlank()
有这样的任务:name
、surname
、patronymic
等字段到达输入
在最简单的情况下,所有这些字段都填充了数据,因此它们的输出如下所示:
"name" + "surname" + "patronymic"
但是,有时会缺少姓氏字段,因此输出应如下所示:
"name" + "patronymic"
另一种情况,当没有父名时,这种情况应该是这样显示的:
"name" + "surname"
和name
一样的东西,可能是少了,应该怎么看,我想你已经猜到了。
我知道您很可能需要以某种方式使用 if-else
来实现所有情况下的预期结果,但在我看来,代码太多了。是否有可能以某种方式解决这个问题并处理所有选项?
val name = "name"
val surname = "surname"
val patronymic = "patronymic"
val result = listOf(name, surname, patronymic)
.filter { it.isNotBlank() }
.joinToString(" ")
println(result)
或者使用辅助函数:
fun List<String>.concatWithBlank() = this.filter { it.isNotBlank() }.joinToString(" ")
val result = listOf(name, surname, patronymic).concatWithBlank()