コース一覧
/
Ruby 応用
/

文字列の応用

文字列メソッドを使おう

文字列の分割・空白除去・置換・大文字小文字変換など、文字列を加工するメソッドを学びます。

.split で文字列を分割する

.split メソッドを使うと、文字列を指定した区切り文字で分割し、配列にすることができます。

text = "apple,banana,orange" fruits = text.split(",") p fruits # => ["apple", "banana", "orange"]

引数を省略すると、空白(スペース、タブ、改行)で分割されます。

text = "Ruby is awesome" words = text.split p words # => ["Ruby", "is", "awesome"]

連続した空白も1つの区切りとして扱われます。

text = "Ruby is awesome" words = text.split p words # => ["Ruby", "is", "awesome"]

.split はデータの解析でよく使われます。例えば、CSV のようなカンマ区切りのデータを処理するときに便利です。

.strip で空白を除去する

.strip メソッドを使うと、文字列の先頭と末尾にある空白を除去できます。

text = " Hello, World! " p text.strip # => "Hello, World!"

先頭だけ除去したい場合は .lstrip、末尾だけ除去したい場合は .rstrip を使います。

text = " Hello, World! " p text.lstrip # => "Hello, World! " p text.rstrip # => " Hello, World!"

.strip はユーザー入力の処理でよく使われます。入力の前後に余分な空白が含まれていることは多いため、これを取り除くことで正確なデータ処理ができます。

.gsub で文字列を置換する

.gsub メソッドを使うと、文字列内の一部を別の文字列に置き換えることができます。第1引数に検索する文字列、第2引数に置換後の文字列を指定します。

text = "Hello, World!" new_text = text.gsub("World", "Ruby") # "World" を "Ruby" に置換 puts new_text # => Hello, Ruby!

一致するすべての箇所が置き換えられます。

text = "apple, apple, apple" new_text = text.gsub("apple", "orange") puts new_text # => orange, orange, orange

空文字列に置き換えることで、特定の文字を削除することもできます。

text = "Hello, World!" new_text = text.gsub(",", "") puts new_text # => Hello World!

最初の1箇所だけを置換したい場合は .sub メソッドを使います。.gsub の「g」は「global(全体)」の意味です。

text = "apple, apple, apple" puts text.sub("apple", "orange") # => orange, apple, apple

.upcase と .downcase で大文字・小文字を変換する

.upcase メソッドを使うと、文字列内のすべての小文字を大文字に変換できます。

text = "hello" puts text.upcase # => HELLO

.downcase メソッドを使うと、すべての大文字を小文字に変換できます。

text = "HELLO" puts text.downcase # => hello

大文字小文字を区別しない比較をするときによく使われます。

user_input = "YES" if user_input.downcase == "yes" puts "承認されました" end # => 承認されました

.capitalize で先頭だけ大文字にする

.capitalize メソッドを使うと、文字列の先頭を大文字に、それ以外を小文字に変換できます。

text = "hello" puts text.capitalize # => Hello text = "hELLO" puts text.capitalize # => Hello

名前の整形などに便利です。

name = "taro" puts name.capitalize # => Taro

メソッドチェーン

文字列メソッドは新しい文字列を返すため、メソッドを連続して呼び出すことができます。これをメソッドチェーンと呼びます。

text = " Hello, World! " result = text.strip.downcase.gsub(",", "") puts result # => hello world!

この例では、まず前後の空白を除去し、次に小文字に変換し、最後にカンマを削除しています。

まとめ

  • .split(区切り文字) で文字列を配列に分割できる(省略時は空白で分割)
  • .strip で先頭と末尾の空白を除去できる
  • .lstrip で先頭のみ、.rstrip で末尾のみの空白を除去できる
  • .gsub(検索文字列, 置換文字列) で文字列を置換できる
  • .upcase で大文字に、.downcase で小文字に変換できる
  • .capitalize で先頭だけ大文字、それ以外を小文字に変換できる
  • 文字列メソッドは新しい文字列を返すため、メソッドチェーンで連続して呼び出せる