【Ruby】splitで配列を簡単に作る方法

f:id:clrmemory:20170422184943p:plain 

Rubyには、splitというメソッドを使うことで、1行の文字列から指定したキーワードで区切った配列を作成できます。

詳しい例は後述しますが、このsplitを使うことで簡単にメソッドを作ることができたので紹介します。

 

 

はじめに

 

今回紹介する方法は「Ruby」を使用した配列の作り方になります。別の言語で同様の処理を行ってもうまくいかない可能性があるので注意してください。

また、使用しているエディタはSublimeTextです。

 

ではまず、通常の配列を作ってみましょう。

 

Rubyで配列を作る

 

Rubyで配列を作る場合(別言語も大抵同じですが) 、以下のような記述をすることで、作成できるかと思います。

 

array = ["Ruby", "Java", "Swift", "JavaScript", "Python", "Scala"]

 

このようなコードで作成すると、簡単に作ることはできるのですが「" “」を何回も記述しなければならなかったり、ダブルクォーテーションが頻出するため、見た目が若干悪くなったりします。

特に気にならないのであればこのままでも良いのですが、Rubyではsplitメソッドを使うことで、もっと楽な記述で済ませることができるので見ていきましょう。

 

splitメソッドで配列を作る

 

splitで配列を作る場合、以下のような手順になります。

・区切り文字を決める

・文字列の中から指定した区切り文字を探す

・区切り文字ごとに配列の要素に設定

・配列完成

 

例えば先ほどの場合であれば、区切り文字を「, 」にすれば、似たようなコードで、ダブルクォーテーションの数を圧倒的に減らすことができます。

先ほどのコードをsplitで書き換えたコードが以下になります。

 

array2 = "Ruby, Java, Swift, JavaScript, Python, Scala".split(", ")

 

先ほどのコードと合わせて出力してみると、どちらも同じように配列が完成したのがわかるかと思います。

 

array = ["Ruby", "Java", "Swift", "JavaScript", "Python", "Scala"]
array2 = "Ruby, Java, Swift, JavaScript, Python, Scala".split(", ")

p array
p array2

# => ["Ruby", "Java", "Swift", "JavaScript", "Python", "Scala"]
# => ["Ruby", "Java", "Swift", "JavaScript", "Python", "Scala"]

 

コードの解説

 

さて今回「split」で区切り文字に指定した文字列ですが「, 」です。

こちらは、スペースまで区切り文字に含むようになっています。このようにしないと作成された配列の要素の先頭にスペースが付属します。

 

今回の場合だと「" Java"」「" Swift"」といった具合ですね。

区切る前の文字列からスペースを排除しても良いのですが、それだとせっかく見た目をすっきりさせたのに、また詰まった感じになってしまうため、splitでスペースまで含んでおくと良いかと思います。

 

また、splitのダブルクォーテーションは「', ‘」のように、シングルクォーテーションで記述しても特に問題はないので、よりわかりやすくするためには ’ ‘ で記述しても良いかもしれませんね。

私はシングルクォーテーションでなければならない場合を除いて、ほとんどの場合ダブルクォーテーションを使ってしまいますが..。

 

まとめ

 

今回紹介したように、Rubyでは「split」というメソッドを使うことで、より見やすくより簡単に配列を作ることができました。

配列は複数のデータをまとめる時によく使用するので、一緒にsplitも使えるようにしておくと作業が捗るかと思います。

 

参考にしてみてください。

ではまた。

新着記事