متدهای رشته‌ای در روبی

متدهای پرکاربرد رشته: upcase، downcase، split، join، replace، include?، strip و...

متد رشته چیست؟

متدهای رشته‌ای توابعی هستند که روی رشته‌ها عمل می‌کنند. روبی ده‌ها متد رشته‌ای قدرتمند دارد.

تغییر حروف (Case)

متدتوضیحمثال
upcaseبزرگ کردن همه حروف"ali".upcase → "ALI"
downcaseکوچک کردن همه حروف"ALI".downcase → "ali"
capitalizeبزرگ کردن حرف اول"ali".capitalize → "Ali"
swapcaseتعویض بزرگ/کوچک"AlI".swapcase → "aLi"
titlecaseبزرگ کردن هر کلمه"ali reza".titlecase → "Ali Reza"
name = "ali mohammadi"
puts name.upcase       # => ALI MOHAMMADI
puts name.capitalize   # => Ali mohammadi
puts name.titlecase    # => Ali Mohammadi

متدهای با ! (Bang Methods)

متدهای با ! در انتها، رشته اصلی را تغییر می‌دهند:

name = "ali"
puts name.upcase   # => ALI (تغییر نمی‌دهد)
puts name          # => ali (تغییر نکرده)

puts name.upcase!  # => ALI (تغییر می‌دهد!)
puts name          # => ALI (حالا تغییر کرده)

جستجو در رشته

متدتوضیحمثال
include?آیا شامل؟"hello".include?("ell") → true
start_with?با چه شروع می‌شود؟"hello".start_with?("he") → true
end_with?با چه تمام می‌شود؟"hello".end_with?("lo") → true
indexموقعیت زیررشته"hello".index("l") → 2
rindexموقعیت از آخر"hello".rindex("l") → 3
countشمارش کاراکتر"hello".count("l") → 2

تقسیم و ترکیب (Split/Join)

# تقسیم رشته به آرایه
csv = "علی,25,تهران"
parts = csv.split(",")
puts parts.inspect  # => ["علی", "25", "تهران"]

# ترکیب آرایه به رشته
arr = ["علی", "رضا", "مریم"]
puts arr.join(", ")  # => علی, رضا, مریم
puts arr.join(" - ") # => علی - رضا - مریم

جایگزینی (Replace)

متدتوضیح
subجایگزینی اولین مورد
gsubجایگزینی همه موارد
sub!جایگزینی اولین مورد (تغییر اصلی)
gsub!جایگزینی همه موارد (تغییر اصلی)
text = "روبی عالی است. روبی ساده است."

# sub فقط اولین مورد
puts text.sub("روبی", "Ruby")
# => Ruby عالی است. روبی ساده است.

# gsub همه موارد
puts text.gsub("روبی", "Ruby")
# => Ruby عالی است. Ruby ساده است.

حذف فاصله (Strip)

متدتوضیح
stripحذف فاصله از ابتدا و انتها
lstripحذف فاصله از ابتدا
rstripحذف فاصله از انتها
s = "   سلام دنیا   "
puts "[#{s.strip}]"   # => [سلام دنیا]
puts "[#{s.lstrip}]"  # => [سلام دنیا   ]
puts "[#{s.rstrip}]"  # => [   سلام دنیا]

ساختار و بررسی

متدتوضیح
length / sizeطول رشته
empty?آیا خالی است؟
reverseبرعکس کردن
charsتبدیل به آرایه کاراکتر
bytesبایت‌های رشته
* nتکرار n بار

تبدیل نوع

متدتوضیح
to_iبه عدد صحیح
to_fبه عدد اعشاری
to_symبه نماد (Symbol)
charsبه آرایه

متدهای بررسی نوع

puts "123".match?(/^\d+$/)   # => true (فقط عدد)
puts "abc".match?(/^[a-z]+$/) # => true (فقط حرف)
puts "  ".empty?              # => false (فاصله خالی نیست!)
puts "".empty?                # => true

خلاصه

دستهمتدها
تغییر حروفupcase, downcase, capitalize
جستجوinclude?, start_with?, index
تقسیم/ترکیبsplit, join
جایگزینیsub, gsub
حذف فاصلهstrip, lstrip, rstrip
ساختارlength, empty?, reverse

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط