カテゴリ: Ruby 更新日: 2025/12/04

Rubyのjoinと配列変換を完全解説!文字列⇔配列の相互変換レシピ集

joinと配列変換:文字列⇔配列の相互変換レシピ集
joinと配列変換:文字列⇔配列の相互変換レシピ集

先生と生徒の会話形式で理解しよう

生徒

「Rubyで文字列と配列を行き来させる方法ってありますか?」

先生

「ありますよ。文字列を配列に変換したり、配列を文字列にまとめることができます。」

生徒

「具体的にはどのメソッドを使うんですか?」

先生

「Rubyではsplitやcharsで文字列を配列に変換し、joinで配列を文字列にまとめます。順番に見ていきましょう!」

1. 配列を文字列に変換するjoinメソッドとは

1. 配列を文字列に変換するjoinメソッドとは
1. 配列を文字列に変換するjoinメソッドとは

Rubyのjoinメソッドは、配列に入っている複数の要素を一つの文字列にまとめるためのメソッドです。例えば、配列の要素が["りんご", "みかん", "バナナ"]の場合、joinを使うことで「りんごみかんバナナ」と1つの文字列に変換できます。


fruits = ["りんご", "みかん", "バナナ"]
puts fruits.join
puts fruits.join(", ") # カンマとスペースで区切る

りんごみかんバナナ
りんご, みかん, バナナ

2. 文字列を配列に変換するsplitメソッド

2. 文字列を配列に変換するsplitメソッド
2. 文字列を配列に変換するsplitメソッド

文字列を配列に変換したい場合は、splitメソッドを使います。splitは文字列を特定の区切り文字で分割して配列にしてくれます。例えば、カンマ区切りの文字列を配列にしたいときに便利です。


fruits_string = "りんご,みかん,バナナ"
fruits_array = fruits_string.split(",")
p fruits_array

["りんご", "みかん", "バナナ"]

splitの引数を省略すると、デフォルトで空白文字(スペース、タブ、改行)で分割されます。

3. 文字列を1文字ずつ配列にするcharsメソッド

3. 文字列を1文字ずつ配列にするcharsメソッド
3. 文字列を1文字ずつ配列にするcharsメソッド

文字列を1文字ずつ配列に変換したい場合は、charsメソッドを使います。たとえば「Ruby」を文字ごとに配列にする場合です。


word = "Ruby"
letters = word.chars
p letters

["R", "u", "b", "y"]

これをjoinで再び文字列に戻すことも可能です。


puts letters.join

Ruby

4. 配列の要素を結合する便利なテクニック

4. 配列の要素を結合する便利なテクニック
4. 配列の要素を結合する便利なテクニック

配列に含まれる数値やオブジェクトもjoinで文字列にできます。ただし、文字列でない場合はto_sメソッドで変換する必要があります。


numbers = [1, 2, 3, 4]
puts numbers.join("-")
mixed = [1, "りんご", 3.14]
puts mixed.map(&:to_s).join(", ")

1-2-3-4
1, りんご, 3.14

map(&:to_s)は配列の全要素を文字列に変換する便利な書き方です。

5. splitとjoinを組み合わせた文字列加工

5. splitとjoinを組み合わせた文字列加工
5. splitとjoinを組み合わせた文字列加工

splitで文字列を配列に変換し、配列を加工してjoinで戻すことで、文字列の置換やフォーマット変更が簡単にできます。


sentence = "Ruby,Python,JavaScript"
languages = sentence.split(",")
languages.map!(&:upcase) # 全て大文字に変換
new_sentence = languages.join(" | ")
puts new_sentence

RUBY | PYTHON | JAVASCRIPT

このように配列に一旦変換することで、文字列操作が格段に便利になります。

6. 初心者でもわかるjoinとsplitの使い分け

6. 初心者でもわかるjoinとsplitの使い分け
6. 初心者でもわかるjoinとsplitの使い分け

文字列と配列の変換は、Rubyでデータ操作や文字列処理を行う際の基本中の基本です。覚えておくと、CSVデータの処理やユーザー入力の解析など、さまざまな場面で活用できます。

  • 配列を文字列にまとめたいとき → join
  • 文字列を区切って配列にしたいとき → split
  • 文字列を1文字ずつ配列にしたいとき → chars

この3つを組み合わせることで、文字列⇔配列の相互変換が自由自在にできます。

7. ポイント整理

7. ポイント整理
7. ポイント整理

ここまで見てきたように、Rubyで文字列と配列を扱うときは、まず「どの形で持っていると扱いやすいか」を考えると理解しやすくなります。画面に表示したいときやファイルに書き出したいときは文字列、ひとつひとつの要素に対して繰り返し処理をしたいときは配列、といったイメージです。そのうえで、配列から文字列に変換したいときはjoin、文字列をバラして配列にしたいときはsplit、さらに細かく一文字ずつ扱いたいときはcharsという役割分担を覚えておくと、Rubyのコードがぐっと書きやすくなります。

たとえば、名前がカンマ区切りでひとつの文字列として渡されてきた場合、いきなりそのまま処理しようとすると「何番目の名前か」「特定の名前が含まれているか」といった判定がややこしくなります。そこで一度splitで配列に変換し、配列として検索や並び替えを行い、最後に画面表示用にjoinで文字列に戻す、といった流れを取ると、処理の意図も読みやすくなり、Rubyらしいシンプルなプログラムになります。これはWebアプリケーションのフォーム入力やCSVデータの取り扱いなど、実務に近い場面でも同じ考え方で応用できます。


names_text = "たなか,さとう,すずき"

# 文字列を配列に分解する
names = names_text.split(",")

# 配列として処理する(ここでは先頭に「やまだ」を追加)
names.unshift("やまだ")

# 表示用に文字列へ戻す
puts names.join(" / ")

やまだ / たなか / さとう / すずき

このサンプルは、文字列をsplitで配列に変換し、配列に対して要素の追加を行ったあと、joinで見やすい形式の文字列に戻す、という一連の流れを素直に表しています。プログラミング未経験の方でも、「文字列は一続きの文章」「配列は箱に並んだ要素の集まり」とイメージしながら、状況に応じて行き来させているだけだと捉えると理解しやすいでしょう。また、日本語を含む文字列を扱うときは、文字コード(エンコーディング)が正しく設定されていれば、splitjoinも自然に動作してくれます。まずは身近な文章や簡単なリストを題材に、文字列から配列へ、配列から文字列へと変換しながら、手を動かして慣れていくのがおすすめです。

まとめ

まとめ
まとめ

Rubyでの文字列と配列の相互変換は、日常的なプログラミング作業の中でも特に頻度が高く、データ整理や文章処理のあらゆる場面で役立つ重要な要素です。この記事で学んだ「join」「split」「chars」といった基本メソッドは、どれも単体で便利な機能を持ちながら、組み合わせることでより高度な加工処理が可能になります。たとえば、複数の単語を配列として管理し、必要に応じて文字列としてまとめ直したり、文章を分解して配列として扱いながら加工したりする場面では、これらのメソッドが大きな力を発揮します。また、さまざまな区切り文字に対応できる柔軟性や、日本語の文字列処理にも強いRubyならではの直感的な操作が特徴であり、複雑な処理をシンプルな記述で表現できる点も魅力のひとつです。

特に「join」メソッドは配列の要素を一つの文字列として結びつける際に便利で、区切り文字を自由に設定できるため、データを表示形式に整える処理に最適です。一方「split」は文字列を分割するだけでなく、指定した区切りを基準に情報を正確に抽出できるため、入力データの解析やCSV形式の分割、ログデータの処理などにも効果的に使えます。そして「chars」は文字列を一文字ずつ扱えるようにし、細かな調整や部分的な加工を可能にします。こうした特徴を活かして、文字列をいったん配列に変換し、加工したあと再び文字列に戻すことで、柔軟で見通しの良いコードを書くことができます。以下では、記事で学んだ内容を踏まえた応用的なコード例を示し、複雑なデータ加工をより分かりやすく整理する方法を紹介します。

サンプルプログラム:splitとjoinを組み合わせた柔軟加工


sentence = "すもも,もも,もものうち"
words = sentence.split(",")          # 配列へ変換
words.map! { |w| w.gsub("もも", "桃") }   # 条件加工
result = words.join("・")            # 表示用形式に変換
puts result

すもも・桃・桃のうち

この例では、splitで区切り文字を基準に文字列を配列へ変換し、配列内の特定の文字を条件付きで置換したうえで、joinを使って見やすい形式に整えています。Rubyではこのような「分解 → 加工 → 再構築」という流れが非常に直感的に書けるため、文章の整理やデータ整形を自然に行えます。また、charsとjoinを組み合わせることで一文字単位での調整もできるため、より細かな処理も容易です。

文字列から配列へ、そして配列から文字列へという変換操作は、Rubyの柔軟なデータ処理の基礎であり、扱えるようになるとプログラムの表現力が格段に広がります。複数のメソッドを組み合わせながら、対象のデータをどのように加工したいか意識しつつコードを書くことで、効率的で読みやすい実装を生み出すことができます。本記事で紹介した内容を何度か実際に手を動かしながら試していくことで、自然と理解が深まり、さまざまな場面で応用できる力が身につくでしょう。

先生と生徒の振り返り会話

生徒

「先生、joinとsplitって似ているようで役割が全然違うんですね。」

先生

「そうですね。joinは配列をまとめるために使い、splitは文字列を分割するために使います。両方を理解して使い分ければ、文字列加工の幅が大きく広がりますよ。」

生徒

「charsで一文字ずつ扱えるのも便利でした!文章の小さな加工にも使えそうです。」

先生

「その通りです。charsとjoinを組み合わせると細かい調整も簡単にできますし、splitとjoinの流れを身につけると、複雑な文字列処理もスムーズになります。」

生徒

「いろんな場面で使えるんですね。次はCSVやログの処理にも挑戦してみます!」

先生

「とても良いですね。基礎を押さえたので、実際のデータでもどんどん試してみましょう。」

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう