変則的なデータ


rubyのsplit
データを処理するプログラムをrubyで書いていて、うまく動かないので調べてみたら、文字列をsplitするときに、予想と違う挙動をすることに気がついた。

"1,2,3,".split(/,/)

とすると、[“1”,“2”,“3”,""]となると思っていたのだが、[“1”,“2”,“3”]となっている。リファレンスを調べると、要素の最大数を第二引数に指定しないと、最後は無視されるようだ。さらにその数字に負の数を指定すると、要素の数はいくらでも取れるらしい。つまり、

"1,2,3,".split(/,/,-1)

とすると、私が期待する結果が得られる。 このことを知らなかったということは、これまで扱ってきた文字列は、比較的素直なものだけだったのだろう。