如何一次与多个变量进行交互和检查 kotlin

How to interact and check with multiple variables at once kotlin

有这样的任务:namesurnamepatronymic等字段到达输入

在最简单的情况下,所有这些字段都填充了数据,因此它们的输出如下所示:

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