எளிய, இனிய கணினி மொழி – ரூபி – 20 – சரங்களை இணைத்தல் மற்றும் ஒப்பிடுதல்

முந்தைய அத்தியாயத்தில் ரூபியில் string வர்க்கத்திற்கு பொருட்களை உருவாக்குவது எப்படி என்று பார்த்தோம். இந்த அத்தியாயத்தில் ரூபியில் சரங்களைப் பெறுதல், ஒப்பிடுதல் மற்றும் இணைத்தலை காண்போம்.

ரூபியில் சரங்களை இணைத்தல்:

முந்தைய அத்தியாயங்களில் படித்தது போல, ரூபியில் ஒரு வேலையைச் செய்ய பல வழிகள் உள்ளன. அதேப்போல் சரங்களை இணைக்கவும் பல வழிகள் உள்ளன.
‘+’ செயற்கூற்றை பயன்படுத்தி சரங்களை இணைக்கலாம்:

[code lang=”ruby”]
myString = "Welcome " + "to " + "Ruby!"
=> "Welcome to Ruby!"
[/code]

மேலும் + குறியீட்டை அகற்றி சரங்களை இணைக்கலாம்:

[code lang=”ruby”]
myString = "Welcome " "to " "Ruby!"
=> "Welcome to Ruby!"
[/code]

மேற்குறிப்பிட்ட வழிகள் மட்டுமல்லாது நாம் << method-டை பயன்படுத்தி சரங்களை இணைக்கலாம்:

[code lang=”ruby”]
myString = "Welcome " << "to " << "Ruby!" => "Welcome to Ruby!"
[/code]

மேலும் concat செயற்கூற்றை பயன்படுத்தியும் இணைக்கலாம்:

[code lang=”ruby”]
myString = "Welcome ".concat("to ").concat("Ruby!")
=> "Welcome to Ruby!"
[/code]

ரூபியில் சரங்களை உறையவைத்தல்:

ரூபியில் ஒரு சரத்தை உருவாக்கிய பிறகு அதை உறைய வைக்க முடியும். இதனால் நாம் மேலும் அந்த சரத்தை மாற்ற இயலாது. இதை string வர்க்கத்திலுள்ள freeze செயற்கூற்றைக் கொண்டு செய்யலாம்:

[code lang=”ruby”]
myString = "Welcome " << "to " << "Ruby!" => "Welcome to Ruby!"

myString.freeze

myString << "hello"
TypeError: can’t modify frozen string
[/code]

சரத்தின் கூறுகளை பெறுதல்:

சரத்தின் கூறுகளைப்பெற string வர்க்கத்திலுள்ள [ ] செயற்கூற்றைப் பயன்படுத்தலாம். இந்த செயற்கூற்றைப் பயன்படுத்தி ஒரு குறிப்பிட்ட குறியீடுகளின் தொகுப்பு, சரத்தில் உள்ளதா என்று அறியலாம். குறியீடுகளின் தொகுப்பு சரத்திலிருந்தால், அந்த தொடரை திருப்பியனுப்பும், இல்லையெனில் nil-யை அனுப்பும்.

[code lang=”ruby”]
myString = "Welcome to Ruby!"

myString["Ruby"]
=> "Ruby"

myString["Perl"]
=> nil
[/code]

[ ] செயற்கூற்றில் integer அல்லது ஒரு குறியீட்டின் ASCII code-யை அனுப்பினால் சரத்தில் அந்த இடத்தில் உள்ள குறியீட்டை திருப்பி அனுப்பும். Chr செயற்கூற்றை பயன்படுத்தி குறியீடாக மாற்றலாம்.

[code lang=”ruby”]
myString[3].chr
=> "c"
[/code]

மேலும் ஒரு சரத்திலிருந்து ஒரு குறிப்பிட்ட பகுதியில் உள்ள குறியீடுகளை பெற, ஆரம்ப இடம் மற்றும் பகுதியின் நீளத்தை அனுப்ப வேண்டும்:

[code lang=”ruby”]
myString[11, 4]
=> "Ruby"
[/code]

ஒரு range-யை பயன்படுத்தியும் ஒரு குறிப்பிட்ட பகுதியிலுள்ள குறியீடுகளின் குழுவை பெறலாம். ஆரம்பம் மற்றும் முடிவு புள்ளிகளை கொண்டு இந்த பகுதியிலுள்ள குறியீடுகளை அறியலாம்:

[code lang=”ruby”]
myString[0..6]
=> "Welcome"
[/code]

பொருந்தும் ஒரு உபசரத்தின் (Substring) இடத்தை அறிய index செயற்கூற்றை பயன்படுத்தி அறியலாம்:

[code lang=”ruby”]
myString.index("Ruby")
=> 11
[/code]

ரூபியில் சரங்களை ஒப்பிடுதல்:

இரண்டு சரங்களை ஒப்பிடுவது ஒரு பொதுவான விசயம். ஒன்று, இரண்டு சரங்கள் சமமாகவோ அல்லது ஒரு சரம் பெரியதாகவோ அல்லது மற்றதைவிட சிறியதாகவோ இருக்கும்.
சமமானதை அறிய ‘==’ அல்லது eql? என்ற செயற்கூற்றைக் கொண்டு அறியலாம்,

[code lang=”ruby”]
"John" == "Fred"
=> false

"John".eql? "John"
=> true
[/code]

Spaceship(<=>) method-டை பயன்படுத்தி இரண்டு சரங்களை அகரவரிசையில் ஒப்பிடு செய்யலாம். சரங்கள் சமமாக இருப்பின் ,<=> செயற்கூறு 0-வை திருப்பி அனுப்பும். இடது பக்கம் உள்ள சரம், வலது பக்கம் உள்ள சரத்தை விட சிறியதாக இருந்தால் -1 அனுப்பும். அதுவே பெரியதாக இருந்தால் 1 அனுப்பும்.

[code lang=”ruby”]
"Apples" <=> "Apples"
=> 0

"Apples" <=> "Pears"
=> -1

"Pears" <=> "Apples"
=> 1
[/code]

Case insensitive-ஆக string-யை ஒப்பிடுதல்:

சரங்களை பெரிய எழுத்து, சிறிய எழுத்தி வேறுபாடின்றி ஒப்பிட (case insensitive) casecmp என்ற செயற்கூற்றைப் பயன்படுத்தலாம். இது <=> செயற்கூற்றை போலவே 0, -1 அல்லது 1 ஆகிய மதிப்புகளுள் ஒன்றை திருப்பி அனுப்பும்.

[code lang=”ruby”]
“Apples”.casecmp(“APPLES”)
=> 0

“Apples” <=> “APPLES”
=> 1
[/code]

— தொடரும்

பிரியா – priya.budsp@gmail.com – ஐக்கிய அரபு அமீரகம்

%d bloggers like this: