Как разделить пробел пропуска и строка?

У меня есть строка как " This is a test ". Я хочу разделить строку пробелом. Я делаю это как это:

puts " This   is a test ".strip.each(' ') {|s| puts s.strip}

Результат:

Это


a
тест
Это - тест

Почему там последняя строка "This is a test"? И мне нужно, что, если существует два или больше пробела между двумя словами, что это не должно возвращать "строку".

Я только хочу получить слова splitted в данной строке.
У кого-либо есть идея?

12
задан jww 27 September 2014 в 04:38
поделиться

3 ответа

irb(main):002:0> " This   is a test ".split
=> ["This", "is", "a", "test"]

irb(main):016:0* puts " This   is a test ".split
This
is
a
test

str.split(pattern=$;, [limit]) => anArray

Если шаблон опущен, то его значение равно $; используется. Если $; равен нулю (что означает по умолчанию), str разделена на белые пробелы Как если бы `` было указано.

41
ответ дан 2 December 2019 в 03:25
поделиться

Вы должны сделать

" This   is a test ".strip.each(' ') {|s| puts s.strip}

Если вы не хотите, чтобы последний "это тест"

Потому что

irb>>> puts " This   is a test ".strip.each(' ') {}
This   is a test
2
ответ дан 2 December 2019 в 03:25
поделиться

Первая команда "помещает" будет помещена после того, как каждый блок будет исключен. опустите первые "вставки", и все готово

1
ответ дан 2 December 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: