متدهای پرکاربرد رشته: 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 |