所以我需要将一个字符串数组转换成一个句子,大写第一个单词并在结尾添加一个句点。我到处寻找并找到了点点滴滴,但没有像我的问题那样具体。
到目前为止我尝试了什么:
array1 = ["this", "is", "my", "first", "post"]
def sentence_maker (array)
array.join(' ')
end
它会产生一个句子,但是我无法弄清楚如何使第一个单词大写,而将其他单词保持为小写并添加“。”在句末。任何帮助将不胜感激。
答案 0 :(得分:5)
你可以这样做:
array1 = ["this", "is", "my", "first", "post"]
def sentence_maker (array)
array.join(' ').capitalize << "."
end
sentence_maker(array1)
# => "This is my first post."
答案 1 :(得分:1)
执行此操作的简单方法是使用capitalize
method,但请注意“案例转换仅在ASCII区域有效”:
"école".capitalize
# => "école"
如果这可能是一个问题,您应该考虑使用类似Unicode Utils gem:
的内容require 'unicode_utils'
UnicodeUtils.titlecase("école")
# => "École"
所以你的完整方法可能类似于:
def sentence_maker (array)
array[0] = UnicodeUtils.titlecase(array[0])
array.join(' ') << '.'
end
(这与其他答案略有不同,因为titlecase
更改了字符串中每个单词的第一个字母,在这种情况下我们不需要这样做。另请注意这一点修改你可能不想要的array
,所以如果是这种情况,你必须以不同的方式构造代码。)
答案 2 :(得分:0)
我该怎么做:
array1 = ["this", "is", "my", "first", "post"]
def sentence_maker(array)
string = array.join(' ')
string.capitalize!
string << '.'
end
puts sentence_maker(array1)
#=> "This is my first post."