有什么巧妙的(简短而惯用的)方法来获取字符串列表,并返回一个从列表中构建的正确标点的字符串,并用引号将每个元素引起来。
这是我在尝试Groovy时想到的,对于我来说,我的字面意思是,但过于说明性的解决方案是
def temp = things.collect({"\'${it}\'"})
switch (things.size()) {
case 1:
result = temp[0]
break
case 2:
result = temp.join(" and ")
break
default:
result = temp.take(temp.size()-1).join(", ") + ", and " + temp[-1]
break
}
也就是说,['1']
应该yield '1'
,['1','2']
应该yield '1 and 2'
,[请参阅我在那里做的吗?],并且['1','2','3']
应该yield '1, 2, and 3'
。
对于Groovy,我有一些很好的答案,但我想看看其他语言可以做什么。
在各种语言中,有什么紧凑的巧妙方法可以利用这些语言的功能和习惯用法?
['we invited the stripper','JFK','Stalin']