স্কালাতে স্ট্রিং এবং রেঞ্জ দুটি গুরুত্বপূর্ণ ডেটা টাইপ যা খুবই কার্যকরী হতে পারে যখন আপনাকে একটি পরিসরের মান বা স্ট্রিং ম্যানিপুলেশন করতে হয়। স্কালাতে স্ট্রিং এবং রেঞ্জের মধ্যে বিভিন্নভাবে সংযোগ এবং প্রয়োগ করা যায়, যা বিভিন্ন ধরনের ডেটা ম্যানিপুলেশনে কাজে আসে।
১. স্ট্রিং এবং রেঞ্জের সংযোগ (Concatenation of String and Range)
স্ট্রিং এবং রেঞ্জের সংযোগ করার মাধ্যমে আপনি একটি রেঞ্জের মধ্যে থাকা মানগুলোকে স্ট্রিং হিসেবে একত্রিত করতে পারেন। এটি সাধারণত যখন আপনাকে রেঞ্জের মানগুলোর একটি সিরিজ স্ট্রিং আকারে তৈরি করতে হয়, তখন ব্যবহৃত হয়।
উদাহরণ ১: স্ট্রিং এবং রেঞ্জের সংযোগ
val range = 1 to 5
val rangeAsString = range.mkString(", ")
println(s"The range as a string: $rangeAsString") // The range as a string: 1, 2, 3, 4, 5এখানে, mkString(", ") মেথড ব্যবহার করা হয়েছে যা রেঞ্জের মানগুলোকে একটি স্ট্রিংয়ে পরিণত করে, যেখানে প্রতিটি মান একটি কমা ও স্পেস দ্বারা আলাদা হয়।
২. রেঞ্জ এবং স্ট্রিং এর মধ্যে সংযোগ (Connecting Range and String)
রেঞ্জের মধ্যে থাকা মানের সাথে স্ট্রিংকে যোগ করার মাধ্যমে আপনি একটি নতুন স্ট্রিং তৈরি করতে পারেন। সাধারণত এটি তখন ব্যবহৃত হয়, যখন একটি রেঞ্জের প্রতিটি মানের সাথে একটি স্ট্রিং যোগ করতে হয়।
উদাহরণ ২: রেঞ্জের সাথে স্ট্রিং যোগ করা
val range = 1 to 5
val result = range.map(x => s"Number: $x").mkString(", ")
println(result) // Number: 1, Number: 2, Number: 3, Number: 4, Number: 5এখানে, map ফাংশন ব্যবহার করে আমরা রেঞ্জের প্রতিটি মানের সাথে "Number: " স্ট্রিং যোগ করেছি এবং পরে mkString দিয়ে এগুলোকে একটি একক স্ট্রিংয়ে রূপান্তর করেছি।
৩. রেঞ্জের মধ্যে স্ট্রিং এর প্রয়োগ (Applying String Operations on Range)
আপনি রেঞ্জের ওপর স্ট্রিং অপারেশনও প্রয়োগ করতে পারেন, যেমন রেঞ্জের উপর স্ট্রিং ফিল্টারিং বা ম্যানিপুলেশন করা। এটি তখন ব্যবহার হয় যখন রেঞ্জের প্রতিটি মানকে স্ট্রিং হিসেবে ব্যবহার করে তার মধ্যে কোনো অপারেশন করতে হয়।
উদাহরণ ৩: রেঞ্জের মধ্যে স্ট্রিং অপারেশন
val range = 1 to 10
val evenNumbersAsString = range.filter(_ % 2 == 0).map(_.toString).mkString(", ")
println(evenNumbersAsString) // 2, 4, 6, 8, 10এখানে, প্রথমে রেঞ্জের মধ্যে থেকে even numbers ফিল্টার করা হয়েছে, তারপর প্রতিটি সংখ্যাকে স্ট্রিংয়ে রূপান্তর করা হয়েছে এবং সবশেষে mkString ব্যবহার করে একক স্ট্রিংয়ে যোগ করা হয়েছে।
৪. রেঞ্জ তৈরি এবং স্ট্রিং হিসেবে ব্যবহারের প্রয়োগ (Creating Range and Using it as String)
স্ট্রিং হিসেবে রেঞ্জ তৈরি করতে আমরা to, until, বা অন্য কোনো রেঞ্জ অপারেটর ব্যবহার করতে পারি, যেমন রেঞ্জের মধ্যে কিছু নির্দিষ্ট শর্তে ফিল্টার করে স্ট্রিং তৈরি করা।
উদাহরণ ৪: রেঞ্জ তৈরি এবং স্ট্রিং হিসেবে ব্যবহারের প্রয়োগ
val range = 1 to 10
val resultString = range.mkString("Range: [", ", ", "]")
println(resultString) // Range: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]এখানে, mkString("Range: [", ", ", "]") ব্যবহার করা হয়েছে, যার মাধ্যমে রেঞ্জের মানগুলোর একটি ফরম্যাটেড স্ট্রিং তৈরি করা হয়েছে, যেখানে প্রতিটি মানের মধ্যে কমা রয়েছে এবং স্ট্রিং শুরু ও শেষেও কিছু নির্দিষ্ট টেক্সট যুক্ত করা হয়েছে।
৫. স্ট্রিং রেঞ্জ তৈরি করা (Creating Range from String)
স্ট্রিং থেকে একটি রেঞ্জ তৈরি করতে হলে, স্ট্রিংয়ের প্রথম এবং শেষ অক্ষরকে নির্দেশক হিসেবে ব্যবহার করে একটি রেঞ্জ তৈরি করা যায়। এটি স্কালাতে অক্ষরগুলির মধ্যে একটি রেঞ্জ তৈরি করতে সহায়ক।
উদাহরণ ৫: স্ট্রিং রেঞ্জ তৈরি করা
val letterRange = 'a' to 'e'
val result = letterRange.mkString(", ")
println(result) // a, b, c, d, eএখানে, 'a' to 'e' রেঞ্জ অপারেটর ব্যবহার করে আমরা a থেকে e পর্যন্ত অক্ষরগুলোর একটি রেঞ্জ তৈরি করেছি, এবং mkString দিয়ে রেঞ্জের মানগুলোকে স্ট্রিং আকারে একত্রিত করেছি।
সারাংশ:
স্ট্রিং এবং রেঞ্জের সংযোগ এবং প্রয়োগ স্কালাতে খুবই কার্যকরী হতে পারে, যেখানে আপনি রেঞ্জের মানগুলোর উপর বিভিন্ন অপারেশন বা ম্যানিপুলেশন করতে পারেন এবং স্ট্রিং হিসেবে রেঞ্জ ব্যবহার করতে পারেন। স্ট্রিং এবং রেঞ্জের মধ্যে সংযোগ যেমন mkString, map, এবং filter ব্যবহারের মাধ্যমে আপনি জটিল ডেটা প্রক্রিয়াকরণ করতে পারেন। এই সংযোগ স্কালাতে খুবই শক্তিশালী এবং নমনীয়, যা ডেটা ম্যানিপুলেশনকে সহজ করে তোলে।
Read more