Как разбить строку и пропустить пробелы?
У меня есть строка типа " This is a test "
. Я хочу разбить строку на символ пробела. Я делаю это так:
puts " This is a test ".strip.each(' ') {|s| puts s.strip}
Результат:
Это
является
тест
Это тест
Почему существует последняя строка "This is a test"
?
И мне нужно, чтобы, если между двумя словами есть два или более пробела, это не должно возвращать "строку".
Я хочу только получить слова, разделенные на заданную строку.
У кого-нибудь есть идея?
Ответы
Ответ 1
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
Если шаблон опущен, значение $; используется. Если $; nil (это default), str разделяется на пробелы как будто `были указаны.
Ответ 2
Вы должны сделать
" This is a test ".strip.each(' ') {|s| puts s.strip}
Если вы не хотите, чтобы последний "это тест"
Поскольку
irb>>> puts " This is a test ".strip.each(' ') {}
This is a test
Ответ 3
Первая команда "puts" будет помещена после исключения каждого блока.
опустите первый "puts" и вы закончите