今回はRubyで「join」メソッドを使って「配列・文字列を連結させて1つの文字列」にしてみたので紹介します。
このメソッドを使うことで複数単語の配列や文字列を変換し、それぞれの頭文字だけを大文字にすることもできるので参考にしてみてください。
はじめに
今回紹介する方法は「Ruby」で配列を1つにまとめる方法です。
作業はRubyのバージョンは「2.3.3」、使用しているエディタは「SublimeText」です。
Rubyのバージョンが変わると、正しく動作しない可能性があるので注意してください。
では早速「join」を使って配列を1まとめにしてみましょう。
joinの使い方
まずは、以下を例文として「join」の使い方を確認してください。
array = ["ABC","DEF"]
p array.join('-')
とても単純なコードですが、このように記述すると「"ABC-DEF"」と出力されます。
“ABC"という配列と"DEF"という配列がひとまとめの文字列に変換されたのがわかるかと思います。
また、joinは引数を取ることができます。
joinの引数には「分割する文字列」を設定してください。
先ほどの例では「-」を区切りの文字列にしました。
この辺りは、先日紹介した「split」の使い方に似ていますね。ちなみにsplitは文字列を配列に分割するメソッドです。
頭文字だけ大文字にする
先日の「capitalize」を使えば、文字列の先頭だけを大文字にすることができました。
joinを使えば、これを単語ごとに実装できるので確認してください。
単語ごとに先頭の文字を大文字に変換するコードはこちらです。
array = ["hello", "ruby"]
p array.collect { |s| s.capitalize }.join('-')
簡単に解説すると「collect」でarray配列の数だけ繰り返し、それらの値に「capitalize」を与えています。
そして変換できた文字列を「join」で連結させました。
文字列を分割・変換する
ここまで紹介してきた方法を使って、今度は配列ではなく「文字列」を分割して頭文字を大文字にする処理を記述していきましょう。
str = ("hello ruby hello ruby").split(' ')
p str.collect { |s| s.capitalize }.join('-')
このように記述することで「Hello-Ruby-Hello-Ruby」と出力されるコードが完成しました。
細かい動作は先ほどの処理と似ているので解説は不要かもしれませんが、まずはじめに文字列を配列に分割している点に着目してください。
そこからは「配列を分割して大文字に変換した」方法と同じですね。
まとめ
今回紹介した方法を使えば、文字列や配列を単語ごとに分割しその頭文字だけを大文字にすることができました。
splitやcollectと組み合わせることでかなり応用が効くので、ぜひそれぞれ覚えてみてください。
ではまた。