プログラミング、フリーダイビング、ブロックチェーンのブログ

プログラミング道場

私がオススメするプログラミング教材です

私がおすすめするプログラミング教材のまとめ【書籍】

目次1 これからエンジニアになりたい人へ向けた本2 プログラミング言語3 アプリ開発4 サーバー、インフラ、セキュリティなど5 機械学習系6 ゲーム開発7 データベース8 デザイン9 組織作り10 自作シリーズ11 その他12 おまけ これ ...

続きを見る

【Ruby入門】文字列で使えるメソッド

更新日:

記事の内容


この記事では、文字列で使える様々なメソッドを紹介します。

文字列とは何か?

Rubyの文字列とは、「ダブルクォーテーション」もしくは「シングルコーテーション」で囲まれた値です。
また文字列のクラスは、Stringクラスです。

val_1 = 'name'
val_2 = "japan"
p val_1.class
# String
p val_2.class
# String

文字列の連結

文字列を連結するには、「+」「<<」「concat」の三つを使ってやる方法があります。
「<<」を使った方が高速には動作しますが、通常の連結ならば、わかりやすい「+」でもいいと思います。

# 文字列の連結
val_1 = 'Yamada'
val_2 = 'Tarou'
# 「+」を使って文字列を連結する
v = val_1 + val_2
p v
# YamadaTarou
# 「<<」を使って文字列を連結する
v = val_1 << val_2
p v
# YamadaTarou
# 「concat」を使って文字列を連結する
v = val_1.concat(val_2)
p v
# YamadaTarou

文字列の置換

文字列を置換するためには、「sub」「sub!」「gsub」「gsub!」という4つのメソッドがあります。
まずは、マッチした1ヶ所だけを変更する「sub」メソッドです。
「sub!」メソッドを使うと、破壊的な変更を行うことができます。

# 文字列の置換
country = "cebu cebu cebu"
# 一つのcebuをjapanに置き換えます。
p country.sub(/cebu/, 'japan')
# "japan cebu cebu"
# country自体の値は変わっていません
p country
# "cebu cebu cebu"
# country自体の値を変更するには、破壊的なメソッドである「sub!」を使います
country.sub!(/cebu/, 'japan')
p country
# "japan cebu cebu"

次に、マッチした箇所の全てを変更する「gsub」メソッドです。
「gsub!」メソッドを使うと、破壊的な変更を行うことができます。

# 文字列の置換
country = "cebu cebu cebu"
# cebuをjapanに置き換えます。
p country.gsub(/cebu/, 'japan')
# "japan japan japan"
# country自体の値は変わっていません
p country
# "cebu cebu cebu"
# country自体の値を変更するには、破壊的なメソッドである「gsub!」を使います
country.gsub!(/cebu/, 'japan')
p country
# "japan japan japan"

文字列の削除と抽出

「delete」メソッドを使うと、任意の文字列を削除することができます。
「delete!」メソッドを使うと、破壊的な変更を行うことができます。

# 文字列の削除
country = 'japan'
# jaの全てが消えます
country.delete('ja')
# "pn"
# country自体の値は変わっていません
p country
# 「delete!」を使うと値が変わります
country.delete!('ja')
p country
# "pn"

「slice」メソッドを使うと、範囲で文字列を抽出して、該当文字列を削除することができます。
「slice!」メソッドを使うと、破壊的な変更を行うことができます。

country = 'japan'
# 0番目から3番目の値を取得します
p country.slice(0..2)
# jap
# country自体の値は変わっていません
p country
# "japan"
# 「slice!」メソッドを使って、破壊的な変更を加えます
p country.slice!(0..2)
p country
# "an"
country_2 = 'america'
# 2番目から最後までの値を取得します
p country_2.slice(2..-1)
# "erica"

文字列を含む

文字列に対して、「include?」を使って、指定した文字列が存在するか確認します。

country = 'america'
p country.include?('america')
# true
p country.include?('ame')
# true
p country.include?('amef')
# false

文字列に対して「start_with?」や「end_with?」を使って、指定した文字が最初や最後に存在することを確認します。

# 指定の文字列で始まっているかを確認します
country = 'america'
p country.start_with?('ame')
# true
p country.start_with?('Ame')
# false
p country.start_with?('me')
# 指定の文字列で終わっているかを確認します
country = 'america'
p country.end_with?('ca')
# true
p country.end_with?('CA')
# false
p country.end_with?('ri')
# false

文字列の分割

文字列を分割するために、「split」「partition」「rpartition」という三つのメソッドを紹介します。

# 文字列の分割
cities = "cebu, tokyo, osaka"
# カンマで分割
p cities.split(",")
# 分割して、配列として取得
# ["cebu", " tokyo", " osaka"]
# 指定した文字列で分割
val = "americanamerican"
p val.partition('me')
# ["a", "me", "ricanamerican"]
# 末尾から指定した文字列で分割
val = "americanamerican"
p val.rpartition('me')
# ["americana", "me", "rican"]

文字列の比較

「==」「eql?」「equal?」のそれぞれの動作の違いを見ていきます。

# 文字列の比較です
v1 = 'america'
v2 = 'america'
# 先頭が大文字
v3 = 'America'
# 「==」を使った比較
p v1 == v2
# true
p v1 == v3
# false
# 「eql?」を使った比較
# 文字列の値が同じなのでtrue
p v1.eql?(v2)
# true
p v1.eql?(v3)
# false
# 「equal?」を使った比較
# 文字列の値が同じだけど、object_idの値が違うのでfalse
p v1.equal?(v2)
# false
# object_idを確認
p v1.object_id
# 47178390570680
p v2.object_id
# 47178389573320
p v1.equal?(v3)
# false

文字列の検索

文字列を検索するために、「empty?」「index」「rindex」というの三つのメソッドを紹介します。

# 空文字か調べる
val_1 = 'cebu'
p val_1.empty?
# false
val_2 = ''
p val_2.empty?
# true
# 文字列の位置を前から確かめる
country = 'americaamerica'
p country.index('a')
# 0
p country.index('c')
# 5
# 指定した場所から検索する
# 1番目から「a」を検索する
p country.index('a', 1)
# 6
# 文字列の位置を後ろ確かめる
country = 'americaamerica'
p country.rindex('a')
# 13
p country.rindex('c')
# 12
# 指定した場所から検索する
# 第2引数に数字を指定すると、その位置から先頭に向かって検索します。
# その数字は末尾からの位置ではなく先頭からの位置です
p country.rindex('a', 7)
# 6
p country.rindex('i', 5)
# 4

まとめ

この記事では、文字列の操作に使える様々なメソッドを紹介しました。

Good luck with your engineer life!

Ruby初心者から抜け出したい人に、オススメの本です



Rubyをより詳しく勉強したい人には、この記事がオススメです

Rubyの学習でおすすめの本と動画【2024年最新】

▼ Ruby on Railsについては、この記事で紹介しています 目次1 動画教材2 初心者向け【入門編】3 中級者向け4 上級者向け 動画教材 "ちゃんと" Ruby を学ぼう! ー オブジェクト指向機能ってなんだ? ▼ 興味がある方は ...

続きを見る


Ruby on Railsをより詳しく勉強したい人には、この記事がオススメです

Ruby on Railsの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 初心者向け3 中級者向け 動画教材 Ruby Metaprogramming - Complete Course ▼ 興味がある方は、画像をクリック 英語版です。 Rubyのメタプログラミングについて学べます。 Ruby ...

続きを見る


Gitをより詳しく勉強したい人には、この記事がオススメです

Gitの学習でおすすめの本と動画【2024年最新】

目次1 動画教材2 漫画?でわかりやすく学ぶ入門書の定番3 初心者向け4 中級者向け5 上級者向け 動画教材 もう怖くないGit!チーム開発で必要なGitを完全マスター ▼ 興味がある方は、画像をクリック Gitの基本コマンド、ブランチやマ ...

続きを見る

-Ruby, プログラミング

S