Ответ 1
str = 'one two three four five six seven'
str.split.each_slice(2).map{|a|a.join ' '}
=> ["one two", "three four", "five six", "seven"]
Это также обрабатывает случай нечетного числа слов.
У меня есть строка, которую я использую .split('') для разделения строки на массив слов. Могу ли я использовать аналогичный метод для разделения строки на массив из 2 слов вместо этого?
Возвращает массив, в котором каждый элемент является одним словом:
words = string.split(' ')
Я хочу вернуть массив, в котором каждый элемент имеет 2 слова.
str = 'one two three four five six seven'
str.split.each_slice(2).map{|a|a.join ' '}
=> ["one two", "three four", "five six", "seven"]
Это также обрабатывает случай нечетного числа слов.
Вы можете сделать
string= 'one1! [email protected] three3# four4$ five5% six6^ sev'
string.scan(/\S+ ?\S*/)
# => ["one1! [email protected]", "three3# four4$", "five5% six6^", "sev"]
Что-то вроде этого должно работать:
string.scan(/\w+ \w+/)
Ruby scan
полезен для этого:
'a b c'.scan(/\w+(?:\s+\w+)?/)
=> ["a b", "c"]
'a b c d e f g'.scan(/\w+(?:\s+\w+)?/)
=> ["a b", "c d", "e f", "g"]
Это все, что я должен был сделать:
def first_word
chat = "I love Ruby"
chat = chat.split(" ")
chat[0]
end