title: “文字列操作[Ruby逆引き][コーディング規約]”
category: Ruby
tags: [Ruby]

🗽 published: false

Where?RubyのStringクラスについての逆引きです。Rubyのコーディング規約に極力準拠するようにします。

文字列の構築

複数行の文字列を作成する %>/#00)

文字列操作

文字列を結合する %>/#00)

文字列を指定した回数繰り返す %>/#00)

文字列を区切り文字で分割する %>/#00)

文字列の一部を切り出す %>/#00)

2つの文字列が一致しているか?一致していないか? %>/#00)

文字列を1行ずつ処理する %>/#00)

コーディング規約

“(ダブル)と’(シングル)コーテーションについて %>/#00)


🚌 複数行の文字列を作成する

複数行にまたがる文字列を作成する場合は、ヒアドキュメント<<-eos< code>を利用する。

str1 = <<-eos< span>
Ruby
on
Rails
EOS
puts str1 #=> " Ruby\n on\n Rails\n"

🚜 文字列を結合する

短い文字列を結合する場合は式展開"#{...}"を利用する。

str1 = "Ruby"
str2 = "Gem"

puts "#{str1} #{str2}" #=> "Ruby Gem"

長い文字列を結合する場合はString#<<メソッドを利用する。

html = ""
html << "

Page title

"


paragraphs.each do |paragraph|
html << "

#{paragraph}

"

end

🏀 文字列を指定した回数繰り返す

文字列を指定した回数繰り返す(反復する)場合はString#*メソッドを使う。

str = "Ruby "

puts str * 3 #=> "Ruby Ruby Ruby "

🍮 文字列を区切り文字で分割する

文字列を区切り文字で分割する場合は、splitメソッドを用いる。

"Ruby/on/Rails".split("/") #=> ["Ruby", "on", "Rails"]

🐯 シェルコマンドを実行して結果を文字列で受け取る

(バッククオート)`で囲った文字列は、シェルコマンドとして認識される。

str = `date`

puts str #=> "2012年 12月21日 金曜日 00時01分30秒 JST\n"

複数行のシェルコマンドを実行する場合はEOS(バッククオート)`で囲う。

str = <<`eos`< span>
date
echo "******************"
date
echo "=================="
EOS

puts str
# 以下が結果
# "2012年 12月21日 金曜日 21時52分25秒 JST\n
# ******************\n
# 2012年 12月21日 金曜日 21時52分25秒 JST\n
# ==================\n"

🐞 文字列の一部を切り出す

文字列から一部を切り出す場合は、sliceメソッドを使います。

str = "Ruby on Rails"

puts str.slice(5,2) #=> "on"

🗻 2つの文字列が一致しているか? 一致していないか?

文字列が一致しているか? をチェックするのは、==

文字列が一致していないか? をチェックするのは、!=

str1 = "abc"
str2 = "abc"
str3 = "abd"

str1 == str2 # 同値なのでtrue
str1 == str3 # 同値ではないのでfalse

str1 != str2 # 同値なのでfalse
str1 != str3 # 同値ではないのでtrue

👽 文字列を1行ずつ処理する

文字列を1行ずつ処理するにはeach_lineメソッドを使用します。

str = <
Ruby
on
Rails
EOS

line_num = 1
str.each_line do |line|
puts "#{line_num}: #{line}"
line_num = line_num + 1
end
# 結果は以下の通りです。
# 1: Ruby
# 2: on
# 3: Rails

🍄 文字列の先頭/末尾の空白文字を削除する

str = "  Ruby on Rails  "

str.strip #=> "Ruby on Rails"
puts str #=> " Ruby on Rails "

str.strip! #=> "Ruby on Rails"
puts str #=> "Ruby on Rails"

🍣 (99) コーディング規約: “(ダブル)と’(シングル)コーテーションについて

GitHubのRubyスタイルガイドでは文字列の”(ダブル)と’(シングル)コーテーションについて次のように書かれています。

# bad
email_with_name = user.name + ' <' + user.email '>'

# good
email_with_name = "#{user.name} <#{user.email}>"

式展開や文字のエスケープを考慮して、”(ダブルコーテーション)がより望ましい。

🐮 お願い事項

コメントやミスのご指摘は大歓迎です! もし気付いたらぜひコメントください。

🐠 参考にしたコーディング規約

Ruby · Styleguide

bbatsov/ruby-style-guide · GitHub

コーディング規約をまとめてみた (Ruby編)

Rubyコーディング規約

😸 Special Thank

逆引きRuby - 文字列

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍