جداکردن رشته ها

اگر بخواهید یک رشته را به چند رشته تکه تکه کنید می‌توانید از متد ()split استفاده نمایید. اجازه دهید نگاهی به سربارگذاری های مختلف این متد بیندازیم. متد ()split، لیستی از رشته‌ها را بر می‌گرداند، که هر عنصر از این لیست، شامل یک زیر رشته است. اولین سربارگذاری این متد، یک رشته قبول می کند و بر اساس آن تشخیص می‌دهد که رشته باید در چه جایی به قسمت‌های مختلف تقسیم شود.

message = "The quick brown fox jumps over the lazy dog."
substrings = message.split(' ')

for string in substrings
  puts(string)
end
The
quick
brown
fox
jumps
over
the
lazy
dog.

در مثال بالا از کاراکتر فاصله (‘ ‘) برای جدا کردن کلمات در رشته بالا استفاده کرده‌ایم چون دو کلمه متوالی به وسیله فاصله از هم جدا می‌شوند. کلمات در لیست substrings ذخیره می‌شوند. سپس با استفاده از دستور for آن‌ها را در خطوط جداگانه چاپ می‌کنیم. می‌توان تعداد زیر رشته‌های برگشتی را به وسیله سربارگذاری دیگر متد ()split محدود کرد.

message = "The quick brown fox jumps over the lazy dog."
substrings = message.split(' ', 3)

for string in substrings
  puts(string)
end
The
quick
brown fox jumps over the lazy dog.

همانطور که در مثال بالا مشاهده می‌کنید، دومین آرگومان برای تشخیص تعداد زیر رشته‌ها به کار می‌رود. خروجی نشان می‌دهد که دو کلمه اول از رشته جدا شده‌اند و مابقی رشته در عنصر آخر لیست ذخیره می‌شود. یک روش دیگر برای جدا کردن یک بخش از رشته استفاده از دستور زیر است :

string[start..end]

start، اندیس شروع و end اندیس پایان بخشی از رشته است که قرار است جدا شود. به کد زیر توجه کنید:

  1: str = "Welcome to Ruby Tutorials!";
  2: 
  3: puts str[11..14]
  4: puts str[11, 14]
  5: puts str[11..-1]
Ruby
Ruby Tutorials
Ruby Tutorials!

اندیس کاراکترهای رشته از 0 شروع می شود. یعنی اندیس w عدد 0، e عدد 1 و … می باشد. در خط 3 گفته ایم که از اندیس 11 تا 14 را نمایش بده. به این نکته توجه کنید که کاراکتر با اندیس 14 حساب نمی شود. یعنی کاراکترهای 11 تا 13 در اصل نمایش داده می شود. در خط 4 گفته ایم که از کاراکتر 11 به بعد به اندازه 14 کاراکتر را جدا کن. خط 6 یعنی از کاراکتر 11 تا آخرین اندیس را جدا می کند.