30
从列表中生成带有牛津逗号的单个字符串
有什么巧妙的(简短而惯用的)方法来获取字符串列表,并返回一个从列表中构建的正确标点的字符串,并用引号将每个元素引起来。 这是我在尝试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,我有一些很好的答案,但我想看看其他语言可以做什么。 在各种语言中,有什么紧凑的巧妙方法可以利用这些语言的功能和习惯用法?