下面的代码将查找"="然后拆分它们。如果没有"=",先过滤掉
myPairStr.asSequence()
.filter { it.contains("=") }
.map { it.split("=") }
Run Code Online (Sandbox Code Playgroud)
然而看到我们两者都有
.filter { it.contains("=") }
.map { it.split("=") }
Run Code Online (Sandbox Code Playgroud)
想知道是否有一个单一的操作可以组合操作而不是单独执行?
您可以使用mapNotNull代替map.
myPairStr.asSequence().mapNotNull { it.split("=").takeIf { it.size >= 2 } }
Run Code Online (Sandbox Code Playgroud)
如果方法返回的大小为1,即字符串中不存在,则该函数takeIf将返回。并且只接受值并将它们放入列表中(最终返回)。对于您的情况,此解决方案将会起作用。在其他场景中,实现(合并& )可能会有所不同。nulllistsplit=mapNotNullnon nullfiltermap
| 归档时间: |
|
| 查看次数: |
5851 次 |
| 最近记录: |