Logo Image

Blog Article

Rubyの基本的な文字列操作・条件分岐・メソッド定義について

00

文字列操作

%記法で文字列作成

Rubyでは、%記法を使用して文字列を作成することができます。この記法を使うと、通常のダブルクォーテーションやシングルクォーテーションを使わずに、文字列を生成できます。特に、クォーテーションを含む文字列を扱う場合に便利です。

基本例
str1 = %q(シングルクォーテーションの文字列)
str2 = %Q(ダブルクォーテーションの文字列)

puts str1 #=> シングルクォーテーションの文字列

puts str2 #=> ダブルクォーテーションの文字列
応用例
name = "田中さん"
greeting = %Q(こんにちは、#{name}!)
puts greeting  #=> こんにちは、田中さん!

%Qを使うことで、文字列の中に変数を埋め込むことが可能です。ダブルクォーテーションの代わりに%Qを使うと、文字列内で式展開が使えます。

ヒアドキュメントとは

ヒアドキュメントは、複数行にわたる長い文字列を簡単に作成する方法です。特定の識別子を使って、複数行の文字列をそのまま定義できます。

基本例
text = <<EOS

これは
複数行にわたる
文字列です。
EOS

puts text
応用例
name = "角田さん"
text = <<GREETING
こんにちは、#{name}!
お元気ですか?
またお会いできる日を楽しみにしています。
GREETING
puts text

ヒアドキュメントでは、変数や式展開も使えます。複数行のメッセージを扱うときに非常に便利です。

sprintfメソッドを使った文字列作成

sprintfメソッドを使うと、フォーマットを指定して文字列を作成できます。数値を特定の桁数に揃えたり、フォーマットを統一する場合に便利です。

基本例
formatted = sprintf("%0.2f", 3.14159)
puts formatted  #=> "3.14"
応用例
name = "田中さん"
age = 30
puts sprintf("名前: %s, 年齢: %d歳", name, age)
#=> 名前: 田中さん, 年齢: 30歳

%sで文字列、%dで整数をフォーマットします。このようにして、異なる型のデータを一つのフォーマットにまとめて表示できます。

真偽値と条件分岐

&&|| について

Rubyでは、論理演算子 &&(AND)と ||(OR)を使って条件を組み合わせることができます。

基本例
a = true
b = false

puts a && b  #=> false
puts a || b  #=> true
応用例
age = 25
citizen = true

if age >= 18 && citizen
  puts "選挙権があります"
else
  puts "選挙権がありません"
end

ここでは、年齢が18歳以上で市民権を持っている場合に「選挙権があります」と表示します。&&は両方の条件がtrueの場合にのみ実行されます。

case

case文は、複数の条件に基づいて異なる処理を行いたい場合に使います。複数のif文を使う代わりに、case文でスッキリと記述できます。

基本例
fruit = "apple"

case fruit
when "apple"
  puts "りんごです"
when "banana"
  puts "バナナです"
else
  puts "不明な果物です"
end
応用例
grade = "B"

case grade
when "A"
  puts "素晴らしい!"
when "B"
  puts "よくできました!"
when "C"
  puts "もう少し頑張りましょう。"
else
  puts "成績が不明です。"
end

この例では、成績に応じて異なるメッセージを表示します。case文を使うことで、条件分岐がより読みやすくなります。

条件演算子

条件演算子 (?:)は、簡単な条件分岐を行うときに使います。if文を一行で書きたいときに便利です。

基本例
age = 20
message = age >= 18 ? "成人です" : "未成年です"
puts message  #=> 成人です
応用例
score = 85
result = score >= 90 ? "優" : score >= 70 ? "良" : "可"
puts result  #=> 良

条件が複雑な場合でも、一行で結果を返すことができます。

メソッド定義について

?! で終わるメソッド

Rubyでは、?!で終わるメソッド名が存在します。?が付くメソッドは通常、真偽値を返すことが期待されます。一方、!が付くメソッドは、通常のメソッドよりも破壊的な処理を行うことが多いです。

基本例
# ? メソッドの例
puts "apple".include?("a")  # => true

# ! メソッドの例
arr = [1, 2, 3]
arr.reverse!
puts arr  #=> [3, 2, 1]
応用例
# ?メソッドの応用例
number = 10
puts number.even?  #=> true (偶数かどうかをチェック)

# !メソッドの応用例
text = "   余分なスペース   "
text.strip!
puts text  #=> "余分なスペース"

!を使うメソッドは元のオブジェクトを変更するので、注意して使う必要があります。

puts, print, p, ppメソッドについて

Rubyでは、データをコンソールに出力するためにputsprintpppのメソッドを使います。それぞれ微妙に挙動が異なります。

基本例
puts "Hello"  # 改行して表示
print "Hello" # 改行せずに表示
p "Hello"     # デバッグ用にオブジェクトの詳細を表示
応用例
# ppメソッドは複雑なデータ構造を見やすく表示する
require 'pp'
data = {name: "田中さん", age: 30, interests: ["プログラミング", "映画鑑賞"]}
pp data

ppは複雑なデータ構造を見やすくフォーマットして表示するため、デバッグ時に役立ちます。