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