将一串字符串组合成一个句子的重构方法
问题描述:
我在写一个方法来将一个字符串和整数数组合成一个句子。它必须大写第一个字母,在单词之间加上空格,并在最后放置一段时间。以下是我写的:将一串字符串组合成一个句子的重构方法
def sentence_maker(y)
y[0].capitalize!
y[-1]="#{y[-1]}."
sentence = y.join(" ")
end
下面是一个阵列的一个例子,将获得通过:
["alaska", "has", "over", 586, "thousand", "miles"]
什么是这种方法的重构? 在此先感谢您的帮助。红宝石2.1.1p76
答
为什么不这样?:
words = ["alaska", "has", "over", 586, "thousand", "miles"]
words.join(' ').strip.capitalize << '.' #=> "Alaska has over 586 thousand miles."
或字符串插值:
"#{words.join(' ').strip.capitalize}." #=> "Alaska has over 586 thousand miles."
strip
将删除前导/字符串结尾的空格(如果在第一个或最后一个任何数组的值)。
UPDATE:你可以用这个作为阵列的实例方法:
class Array
def to_sentence
"#{join(' ').strip.capitalize}."
end
end
words = ["alaska", "has", "over", 586, "thousand", "miles"]
words.to_sentence # => "Alaska has over 586 thousand miles."
+0
你是如何得到数组最后一个值的时间的? – theartofbeing 2014-10-28 20:11:06
+0
对不起,我发布这个答案时测试了一些代码。 – Surya 2014-10-28 20:13:25
这个问题似乎是题外话,因为它是关于重构的,应该在[codereview.se]上提问。 – 2014-10-28 21:58:00