我希望能够从字符串中获取3个最长的单词。如果没有进入数组等,有没有一种巧妙的方法呢?
答案 0 :(得分:9)
>> str = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.'
>> str.split.map { |s| s.gsub(/\W/, '') }.sort_by(&:length)[-3..-1]
=> ["adipisicing", "consectetur", "exercitation"]
答案 1 :(得分:1)
"some string with words that are of different length".split(/ /).sort_by(&:length).reverse[0..2]
答案 2 :(得分:1)
由于Ruby 2.2 Enumerable if
,max_by
,min_by
和max
采用可选参数,允许您指定将返回多少元素。
min