String Functions: string.find, string.sub, string.format

Strings in Lua (স্ট্রিং) - লুয়া (Lua) - Computer Programming

268

লুয়া (Lua) ভাষায় স্ট্রিং ম্যানিপুলেশনের জন্য একাধিক ফাংশন রয়েছে, যা স্ট্রিং নিয়ে কাজ করতে ডেভেলপারদের সহায়তা করে। এই ফাংশনগুলির মধ্যে জনপ্রিয় এবং শক্তিশালী কিছু ফাংশন হল string.find, string.sub, এবং **string.format**। এই টিউটোরিয়ালে আমরা এসব ফাংশনের ব্যবহার এবং উদাহরণ আলোচনা করব।


১. string.find ফাংশন

string.find ফাংশনটি একটি স্ট্রিং থেকে নির্দিষ্ট সাবস্ট্রিং খুঁজে বের করতে ব্যবহৃত হয়। এটি স্ট্রিংয়ের মধ্যে একটি প্যাটার্ন অনুসন্ধান করে এবং যদি প্যাটার্নটি পাওয়া যায়, তবে তার অবস্থান রিটার্ন করে। এই ফাংশনটি প্রথম দুটি ইনডেক্স (স্ট্রিংয়ের শুরু থেকে প্যাটার্নের প্রথম অক্ষর পর্যন্ত) প্রদান করে।

সিনট্যাক্স:

string.find(str, pattern, [start], [plain])
  • str: স্ট্রিংটি যেখানে প্যাটার্ন খোঁজা হবে।
  • pattern: প্যাটার্ন যা খোঁজা হবে।
  • start: অপশনাল, অনুসন্ধানের শুরু স্থান।
  • plain: অপশনাল, যদি true হয়, এটি প্যাটার্নটি সাধারণ টেক্সট হিসেবে দেখবে (প্যাটার্নের বিশেষ চিহ্ন বাদ দিয়ে)।

উদাহরণ:

str = "Hello, World!"
start_pos, end_pos = string.find(str, "World")

print(start_pos)  -- আউটপুট: 8
print(end_pos)    -- আউটপুট: 12

এখানে, string.find ফাংশনটি "Hello, World!" স্ট্রিংয়ের মধ্যে "World" প্যাটার্ন খুঁজে বের করেছে এবং তার অবস্থান (8 থেকে 12) রিটার্ন করেছে।

plain প্যারামিটার ব্যবহারের উদাহরণ:

str = "Hello, (World)!"
-- "World" কে বিশেষ চরিত্র হিসেবে না দেখে সাধারণ টেক্সট হিসেবে খুঁজে
start_pos = string.find(str, "World", 1, true)
print(start_pos)  -- আউটপুট: 8

এখানে, plain = true সেট করা হয়েছে, ফলে এটি "World" প্যাটার্নকে সাধারণ টেক্সট হিসেবে গণ্য করে খুঁজে।


২. string.sub ফাংশন

string.sub ফাংশনটি একটি স্ট্রিংয়ের একটি সাবস্ট্রিং (উপস্ট্রিং) বের করতে ব্যবহৃত হয়। এটি একটি স্ট্রিং থেকে নির্দিষ্ট অংশের শুরু এবং শেষ অবস্থান নির্ধারণ করে সেই অংশটি রিটার্ন করে।

সিনট্যাক্স:

string.sub(str, start, [end])
  • str: স্ট্রিংটি যার সাবস্ট্রিং বের করতে হবে।
  • start: সাবস্ট্রিংয়ের শুরু অবস্থান।
  • end: অপশনাল, সাবস্ট্রিংয়ের শেষ অবস্থান (যদি না দেওয়া হয়, এটি স্ট্রিংয়ের শেষ পর্যন্ত ধরবে)।

উদাহরণ:

str = "Hello, World!"
sub_str = string.sub(str, 1, 5)

print(sub_str)  -- আউটপুট: Hello

এখানে, string.sub ফাংশনটি স্ট্রিংয়ের ১ম থেকে ৫ম পর্যন্ত অংশ বের করেছে, যা "Hello"

নেগেটিভ ইনডেক্স ব্যবহার:

string.sub ফাংশনটি নেগেটিভ ইনডেক্সও গ্রহণ করে, যার মাধ্যমে স্ট্রিংয়ের শেষ থেকে শুরু করা যায়।

str = "Hello, World!"
sub_str = string.sub(str, -6, -2)

print(sub_str)  -- আউটপুট: World

এখানে, string.sub ফাংশনটি স্ট্রিংয়ের শেষ থেকে ৬ম এবং ২য় থেকে সাবস্ট্রিং বের করেছে, যা "World"


৩. string.format ফাংশন

string.format ফাংশনটি স্ট্রিংকে একটি নির্দিষ্ট ফরম্যাটে কনভার্ট করতে ব্যবহৃত হয়। এটি অন্যান্য প্রোগ্রামিং ভাষার printf এর মতো কাজ করে, যেখানে আপনি স্ট্রিংয়ের মধ্যে ভ্যালু প্লেসহোল্ডার ব্যবহার করে মান ইনজেক্ট করতে পারেন।

সিনট্যাক্স:

string.format(formatstring, ...)
  • formatstring: একটি ফরম্যাট স্ট্রিং যেখানে প্লেসহোল্ডার থাকবে।
  • ...: প্লেসহোল্ডারের জন্য যেকোনো মান পাস করা হবে।

উদাহরণ:

str = string.format("Hello, %s! You are %d years old.", "Alice", 25)
print(str)  -- আউটপুট: Hello, Alice! You are 25 years old.

এখানে, %s স্ট্রিংয়ের জন্য এবং %d ইন্টিজারের জন্য প্লেসহোল্ডার। এই ফরম্যাট স্ট্রিংয়ের মধ্যে Alice এবং 25 মান ইনজেক্ট করা হয়েছে।

অন্যান্য ফরম্যাট:

  • %s: স্ট্রিং।
  • %d: পূর্ণসংখ্যা (integer)।
  • %f: দশমিক সংখ্যা (float)।
  • %x: হেক্সাডেসিমেল সংখ্যা।
  • %c: চরিত্র (character)।
str = string.format("Price: $%.2f", 19.99)
print(str)  -- আউটপুট: Price: $19.99

এখানে, %.2f ফরম্যাটটি দশমিক সংখ্যাকে দুটি দশমিক পর্যন্ত দেখাতে ব্যবহার করা হয়েছে।


সারসংক্ষেপ

লুয়া ভাষায় স্ট্রিং ম্যানিপুলেশন এবং ফরম্যাটিংয়ের জন্য শক্তিশালী ফাংশন রয়েছে:

  • string.find: একটি স্ট্রিং থেকে প্যাটার্ন খুঁজে বের করার জন্য ব্যবহৃত হয়।
  • string.sub: একটি স্ট্রিং থেকে নির্দিষ্ট অংশ (সাবস্ট্রিং) বের করার জন্য ব্যবহৃত হয়।
  • string.format: স্ট্রিংয়ের মধ্যে ফরম্যাটেড মান ইনজেক্ট করার জন্য ব্যবহৃত হয়, যা অন্যান্য প্রোগ্রামিং ভাষার printf ফাংশনের মতো।

এই ফাংশনগুলির মাধ্যমে আপনি লুয়া ভাষায় স্ট্রিং ম্যানিপুলেশন করতে পারবেন খুব সহজে।

Content added By
Promotion

Are you sure to start over?

Loading...