লুয়া ভাষায় স্ট্রিং হ্যান্ডলিং ও ম্যানিপুলেশন অত্যন্ত সহজ এবং নমনীয়। স্ট্রিং হল একটি ডেটা টাইপ যা অক্ষরের সিরিজ ধারণ করে, এবং এতে বিভিন্ন বিল্ট-ইন ফাংশন রয়েছে যা স্ট্রিংয়ের উপর বিভিন্ন ধরনের অপারেশন যেমন কনক্যাটেনেশন, সাবস্ট্রিং, সার্চিং, রূপান্তর ইত্যাদি করতে ব্যবহৃত হয়।
১. স্ট্রিং কনক্যাটেনেশন (String Concatenation)
স্ট্রিং কনক্যাটেনেশন হল দুটি বা তার বেশি স্ট্রিং একসাথে যুক্ত করা। লুয়া ভাষায় স্ট্রিং কনক্যাটেনেশন করতে .. অপারেটর ব্যবহার করা হয়।
উদাহরণ:
firstName = "John"
lastName = "Doe"
fullName = firstName .. " " .. lastName
print(fullName) -- আউটপুট: John Doeএখানে, "John" এবং "Doe" দুটি স্ট্রিংকে কনক্যাটেনেট করে "John Doe" তৈরি করা হয়েছে।
২. স্ট্রিং এর দৈর্ঘ্য (Length of String)
স্ট্রিং এর দৈর্ঘ্য নির্ধারণ করতে লুয়া ভাষায় # অপারেটর ব্যবহার করা হয়।
উদাহরণ:
str = "Hello, World!"
length = #str
print(length) -- আউটপুট: 13এখানে, "Hello, World!" স্ট্রিংটির দৈর্ঘ্য ১৩, যা #str দ্বারা পাওয়া গেছে।
৩. স্ট্রিং সাবস্ট্রিং (Substring)
স্ট্রিংয়ের অংশ (substring) বের করতে string.sub ফাংশন ব্যবহার করা হয়। এটি একটি নির্দিষ্ট অবস্থান থেকে একটি সাবস্ট্রিং প্রদান করে।
সিনট্যাক্স:
string.sub(str, startIndex, endIndex)উদাহরণ:
str = "Hello, World!"
substr = string.sub(str, 1, 5)
print(substr) -- আউটপুট: Helloএখানে, "Hello, World!" স্ট্রিংটির প্রথম পাঁচটি অক্ষর (অথবা 1 থেকে 5 পর্যন্ত) সাবস্ট্রিং হিসেবে বের করা হয়েছে।
৪. স্ট্রিং রিপ্লেসমেন্ট (String Replacement)
স্ট্রিং এর মধ্যে কোনো একটি অংশ রিপ্লেস (বদল) করতে string.gsub ফাংশন ব্যবহার করা হয়।
সিনট্যাক্স:
string.gsub(str, pattern, replacement)উদাহরণ:
str = "I like cats"
newStr = string.gsub(str, "cats", "dogs")
print(newStr) -- আউটপুট: I like dogsএখানে, "I like cats" স্ট্রিংটির মধ্যে "cats" কে "dogs" দিয়ে প্রতিস্থাপন করা হয়েছে।
৫. স্ট্রিং প্যাটার্ন ম্যাচিং (Pattern Matching)
লুয়া ভাষায় স্ট্রিংয়ের মধ্যে প্যাটার্ন (pattern) খুঁজে বের করার জন্য string.match এবং string.find ফাংশন ব্যবহৃত হয়।
১. string.match: প্রথম মিল পাওয়া অংশ বের করা।
str = "Hello, World!"
matchStr = string.match(str, "Hello")
print(matchStr) -- আউটপুট: Hello২. string.find: প্যাটার্নের অবস্থান বের করা।
str = "Hello, World!"
startPos, endPos = string.find(str, "World")
print(startPos, endPos) -- আউটপুট: 8 12এখানে, "Hello, World!" স্ট্রিংয়ের মধ্যে "World" প্যাটার্নের অবস্থান খুঁজে বের করা হয়েছে, যা শুরু হয় ৮ তম অবস্থান থেকে এবং শেষ হয় ১২ তম অবস্থানে।
৬. স্ট্রিং রূপান্তর (String Conversion)
লুয়া ভাষায় স্ট্রিং থেকে সংখ্যা এবং সংখ্যা থেকে স্ট্রিং রূপান্তর করার জন্য tonumber এবং tostring ফাংশন ব্যবহার করা হয়।
১. tonumber: স্ট্রিংকে নাম্বারে রূপান্তর করা।
str = "123"
num = tonumber(str)
print(num) -- আউটপুট: 123২. tostring: নাম্বারকে স্ট্রিংয়ে রূপান্তর করা।
num = 123
str = tostring(num)
print(str) -- আউটপুট: 123এখানে, tonumber স্ট্রিং "123" কে নাম্বারে রূপান্তর করেছে এবং tostring নাম্বার 123 কে স্ট্রিং "123"-এ রূপান্তর করেছে।
৭. স্ট্রিংকে বড়/ছোট অক্ষরে রূপান্তর (Uppercase and Lowercase Conversion)
স্ট্রিংকে বড় অক্ষরে (uppercase) বা ছোট অক্ষরে (lowercase) রূপান্তর করতে string.upper এবং string.lower ফাংশন ব্যবহার করা হয়।
উদাহরণ:
str = "Hello, World!"
upperStr = string.upper(str)
lowerStr = string.lower(str)
print(upperStr) -- আউটপুট: HELLO, WORLD!
print(lowerStr) -- আউটপুট: hello, world!এখানে, "Hello, World!" স্ট্রিংটি বড় অক্ষরে এবং ছোট অক্ষরে রূপান্তরিত হয়েছে।
৮. স্ট্রিং ট্রিম (Trimming String)
স্ট্রিংয়ের শুরু এবং শেষ থেকে অপ্রয়োজনীয় স্পেস (whitespace) মুছে ফেলতে string.match বা string.gsub ফাংশন ব্যবহার করা হয়।
উদাহরণ:
str = " Hello, World! "
trimmedStr = string.match(str, "^%s*(.-)%s*$")
print(trimmedStr) -- আউটপুট: Hello, World!এখানে, string.match ফাংশনটি স্ট্রিংয়ের শুরু এবং শেষের স্পেস মুছে দিয়েছে।
সারসংক্ষেপ
লুয়া ভাষায় স্ট্রিং হ্যান্ডলিং এবং ম্যানিপুলেশন করার জন্য বেশ কিছু শক্তিশালী ফাংশন রয়েছে:
- কনক্যাটেনেশন:
..অপারেটর দ্বারা দুটি স্ট্রিং যোগ করা। - দৈর্ঘ্য:
#অপারেটর দিয়ে স্ট্রিংয়ের দৈর্ঘ্য পাওয়া। - সাবস্ট্রিং:
string.subদিয়ে স্ট্রিংয়ের একটি অংশ বের করা। - রিপ্লেসমেন্ট:
string.gsubদিয়ে স্ট্রিংয়ের অংশ পরিবর্তন করা। - প্যাটার্ন ম্যাচিং:
string.matchএবংstring.findদ্বারা প্যাটার্ন খোঁজা। - রূপান্তর:
tonumberএবংtostringফাংশন দিয়ে ডেটা রূপান্তর করা। - বড়/ছোট অক্ষর:
string.upperএবংstring.lowerদিয়ে স্ট্রিংয়ের কেস পরিবর্তন করা। - ট্রিমিং: স্ট্রিংয়ের অপ্রয়োজনীয় স্পেস মুছে ফেলা।
এই ফাংশনগুলোর মাধ্যমে আপনি স্ট্রিংয়ের সাথে বিভিন্ন ধরনের কার্যক্রম সহজে করতে পারবেন।
Read more