جا دادن یک رشته در داخل رشته دیگر
Ruby به شما اجازه میدهد که یک رشته را در داخل رشته دیگر قرار دهید. به عنوان مثال اگر رشتهای مانند !Hello World داشته باشید میتوانید کلمه Happy را در وسط آن قرار دهید و رشته جدیدی مانند !Hello Happy World ایجاد کنید. به کد زیر توجه کنید:
str1 = "Hello World!" str2 = "Happy " index = str1.index("World!") result = str1[0...index] + str2 + str1[index..-1] print result
Hello Happy World!
در کد بالا ابتدا اندیس وقوع کلمه World را اب استفاده از متد ()find پیدا می کنیم. عبارت str1[0…index] در اصل معادل str1[0…6] است، یعنی تمام کاراکترهای قبل از کلمه World. عبارت str1[index..-1] هم در اصل همان کلمه World می باشد. بین این دو عبارت هم که str2 را نوشته ایم که کلمه happy است. اندیس اولین کاراکتر یک رشته با صفر و اندیس آخرین کاراکتر یک رشته با یک واحد کمتر از طول رشته نمایش داده میشود. در رشته !Hello World میخواهیم رشته جدید را درست بعد از اولین فضای خالی یعنی جایی که حرف W قرار دارد جای دهیم. به کادر زیر توجه کنید :
H e l l o W o r l d ! 0 1 2 3 4 5 6 7 8 9 10 11
اگر توجه کرده باشید رشته Happy در این مکان (بعد از اولین فضای خالی) قرار گرفته است. و هر چیز بعد از آن به جلو رانده و رشته !Hello Happy World ایجاد میشود.
اضافه کردن کاراکتر به سمت چپ یا راست یک رشته با استفاده از rjust و ljust
با استفاده از متدهای ljust و rjust میتوان کاراکتر یا فضاهای خالی را به سمت چپ یا راست رشتهها اضافه کرد. به عنوان مثال اگر بخواهید یک سری فضا را به سمت چپ رشته جهت ترازبندی آن اضافه کنید میتوانید از متد rjust استفاده کنید :
str1 = "Example" str1 = str1.rjust(10) print str1
Example
متدهای rjust و ljust آرگومانی را قبول میکنند که تعداد کاراکترها یا فضاهای خالی وارد شده را تشخیص میدهد. همانطور که در مثال بالا مشاهده کردید عدد 10 ارسال شده باعث ایجاد 3 فضای خالی در سمت چپ رشته میشود. برای به دست آوردن مقدار این فضاها یا کاراکترهایی که در سمت چپ یا راست یک رشته قرار میگیرند میتوان از فرمول (تعداد کاراکتر یا فضای خالی – طول رشته) استفاده کرد.
مثلاً در مثال بالا طول رشته Example برابر 7 میباشد و زمانی که ما عدد 10 را به عنوان آرگومان ارسال میکنیم با استفاده از فرمول 3 = 7 – 10 میتوان فهمید که چند فضای خالی در سمت چپ رشته قرار میگیرد (3 فضای خالی). اگر مقدار آرگومانی که به متد rjust ارسال میشود از طول رشته کمتر باشد هیچ تاثیری بر رشته نهایی ندارد. عمل ljust نیز شبیه به rjust است.
str1 = "Example" str1 = str1.ljust(10) print(str1 + '|')
Example |
همانطور که در مثال بالا مشاهده میکنید ما عدد 10 را به متد ljust ارسال کرده ایم که باعث می شود سه کاراکتر به سمت راست رشته اضافه شود. برای نمایش این تغییر هم کاراکتر “|” را به سمت راست رشته اضافه کردهایم. یکی دیگر از نسخههای این دو متد آرگومان دومی را هم قبول میکند که کاراکتر دلخواهی است که به سمت راست یا چپ رشته اضافه میشود. به مثال زیر توجه کنید :
str1 = "Example" str1 = str1.rjust(10, '*') print(str1)
***Example
استفاده از متدهای بالا زمانی مفید است که خروجی دادهها به صورت جدول باشد. به مثال زیر توجه کنید :
1: data = [ 2: [ "Name", "Gender", "Age" ], 3: [ "John", "Male" , "21" ], 4: [ "Mark", "Male" , "18" ], 5: [ "Jean", "Female", "18" ] 6: ] 7: 8: for i in 0...data.length 9: for j in 0...data[i].length 10: print(data[i][j].ljust(10)) 11: end 12: puts 13: end
Name Gender Age John Male 21 Mark Male 18 Jean Female 18
در مثال بالا از لیستی از لیست ها برای ذخیره دادههایمان استفاده کردهایم. اولین ردیف عناوین و ردیفهای دیگر دادها هستند.