どうもおはようポテト(@ohayoupoteto22)です。
Ruby技術者認定試験でよく出題されるsplitメソッド。
文字列を分割して配列にしてくれるメソッドですが、指定する引数によって少しややこしい・分別のつきにくい動作をする場合があります
split()とsplit(”)とか。
Rubyのsplitメソッドの使い方
a="異世界 転生sしたい"
p a.split(/s/) #=>["異世界", "転生", "したい"]
引数に正規表現でs(空白文字)を指定しているので、空白文字ごとに分割してくれてますね。
split()やsplit(‘ ‘)の場合
a="異世界 転生sしたい"
p a.split() #=>["異世界", "転生", "したい"]
p a.split(' ') #=>["異世界", "転生", "したい"]
split()やsplit(nil)のように引数を指定した場合、空白文字(s)ごとに文字を分割してくれます
a="異世界 転生sしたい"
p a.split #=>["異世界", "転生", "したい"]
p a.split(nil) #=>["異世界", "転生", "したい"]
ちなみに上のような場合でも空白文字ごとに分割してくれます
split(//)やsplit(”)
a="異世界 転生sしたい"
p a.split('') #=>["異", "世", "界", " ", "転", "生", " ", "し", "た", "い"]
p a.split(//) #=>["異", "世", "界", " ", "転", "生", " ", "し", "た", "い"]
一方こちらは1文字ごとに分割してくれます。
第二引数を指定した場合
a="異世界 転生sしたい"
p a.split('',3) #=>["異", "世", "界 転生 したい"]
第二引数を指定すると、その数で文字列を分割してくれます。
上の例でいうと3と指定したので配列の要素が3つになってますね。
詳しくはリファレンスをチェック!
くるみ
まとめ
以上、Rubyのsplit()とsplit(”)の違いでした。Ruby技術者認定試験の模擬試験でこの知識を問われるような問題に出くわしたことがあるので、受ける方はぜひ注意しておきたいところ…!
リンク
>参考になれば幸いです!では⸝⸝- ̫ -⸝⸝