" This is a test "
のような文字列があります。文字列をスペース文字で分割したい。私はこのようにします:
puts " This is a test ".strip.each(' ') {|s| puts s.strip}
結果は次のとおりです。
この
です
a
テスト
これはテストです
最後の行"This is a test"
があるのはなぜですか?また、2つの単語の間に2つ以上のスペース文字がある場合、これが「行」を返さないようにする必要があります。
単語を特定の文字列に分割したいだけです。
誰かアイデアがありますか?
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)==
Patternを省略した場合、$の値;使用されている。 $の場合; nil(デフォルト)の場合、strは `’が指定されているかのように空白で分割されます。
やったほうがいい
" This is a test ".strip.each(' ') {|s| puts s.strip}
最後の「これはテストです」が必要ない場合
なぜなら
irb>>> puts " This is a test ".strip.each(' ') {}
This is a test
各ブロックが実行された後、最初のコマンド「puts」はputになります。最初の「プット」を省略すれば完了です