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



存在这样的任务:一个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()

最新更新