Rya*_*yan 8 string null groovy concatenation
有一个更好的方法吗?注意:part1
,part2
并且part3
是在别处定义的字符串变量(它们可以为null).
def list = [part1, part2, part3]
list.removeAll([null])
def ans = list.join()
Run Code Online (Sandbox Code Playgroud)
所需的结果是一个连接的字符串,其中省略了空值.
cde*_*zaq 11
你可以这样做:
def ans = [part1, part2, part3].findAll({it != null}).join()
Run Code Online (Sandbox Code Playgroud)
根据Groovy Truth,您可以将闭包缩小到仅{it}
取决于列表项的评估方式,但这应该会使它更紧凑.
注意:GDK javadocs是一个很好的资源.
如果您使用findAll
没有参数.它将返回每个"真实"值,所以这应该工作:
def ans = [part1, part2, part3].findAll().join()
Run Code Online (Sandbox Code Playgroud)
请注意,findAll
将过滤掉空字符串(因为它们在布尔上下文中被评估为false),但在这种情况下无关紧要,因为空字符串不会添加任何内容join()
:)
如果这是一个简化的问题,并且您希望保留空字符串值,则可以使用.findResults
{ it }