কোপা Split শামসু

বাংলাদেশে কোনো জায়গা খালি থাকে না। জায়গা খালি হওয়ার আগেই দখল হয়ে যায়। খাল-বিল-নদী-নালা সব ভরাট হয়ে দখল হয়ে যায়। উঁচা-লম্বা বিল্ডিং হয়ে যায়।
কারণ, খালি জায়গা থাকলে সেটা নিয়ে ঝামেলা শুরু হয়। স্ট্রিংয়ের মধ্যে মাঝেমধ্যে খালি জায়গা থাকলে সেটাও মাঝেমধ্যে ঝামেলা শুরু করে। বিশেষ করে স্ট্রিংয়ের শুরুতে বা শেষের দিকে যদি খালি জায়গা চলে আসে, তাহলে সেটা কিছু ঝামেলা করে ফেলে। অনেক সময়, ইউজার যখন কোনো কিছু লিখে, তখন অনিচ্ছা সত্ত্বেও খালি জায়গা চলে আসতে পারে। তখন স্ট্রিং কম্পেয়ার করা ঠিক হয় না।
const drink = ' water';
const liquid = 'water ';
if (drink === liquid) {
console.log('pani hani dami jani');
} else {
console.log('somudre pani dekhte valo khaite kalo');
}
Output: somudre pani dekhte valo khaite kaloতাই মাঝেমধ্যে স্ট্রিংয়ের শুরুর বা শেষের দিকে বা দুইপাশে খালি স্পেস থাকলে সেটাকে কেটে ফেলতে হয়। ট্রিম করে ফেলার দরকার পড়তে পারে। নিচের মতো করে। জাস্ট স্ট্রিংয়ের পর ডট চিহ্ন দিয়ে trim লিখে দুইটা ব্র্যাকেট দিয়ে দিবি। তাহলে সামনে বা পিছনের, দুই সাইডের খালি জায়গা থাকলে সেটা হাওয়া হয়ে যাবে।
const drink = ' water';
const liquid = 'water ';
console.log(drink.trim());
console.log(liquid.trim());
Output: water
waterট্রিম করে ফেললে তুলনা করা অনেক সহজ হয়ে যায়। শুধু শুধু খালি জায়গার জন্য মেইন জিনিস কম্পেয়ার করতে সমস্যা হয় না।
const drink = ' water';
const liquid = 'water ';
if (drink.trim() === liquid.trim()) {
console.log('pani hani dami jani');
} else {
console.log('somudre pani dekhte valo khaite kalo');
}
Output: pani hani dami janiমাংসের স্লাইস
একটা খাসির বারবিকিউ করা হলো। একটা ফুল খাসি তোকে ডাকলো খাইতে। এখন তুই তো পুরা রান খাইতে পারবি না। তোর দরকার পুরা রানের ভিতর থেকে একটা ছোট স্লাইস। মাঝখান থেকে একটা ছোট স্লাইস দিতে হলে তোকে দুই জায়গায় কোপ মারতে হবে। যেখানে কাটা শুরু হবে। আর কোথায় গিয়ে কাটা শেষ হবে। যেখানে কাটা শুরু হবে, সেখান থেকে যেখানে কাটা শেষ হবে, তার আগ পর্যন্ত মাংসের টুকরা বা স্লাইস তুই পাবি।
একইভাবে কোনো একটা স্ট্রিং থেকে এক টুকরা স্ট্রিং পেতে চাইলে সেই স্ট্রিংয়ের পরে স্লাইস লিখে ব্র্যাকেটের ভিতরে তোকে দুইটা মান দিতে হবে। প্রথমে থাকবে, কোথায় কাটা শুরু হবে। তারপর থাকবে, কোথায় কাটা শেষ হবে। তাহলে এই দুইটা ইনডেক্সের মাঝখানের অংশ তোকে দিয়ে দিবে।
const address = 'andorKilla';
const part = address.slice(2, 5);
console.log(part);
Output: dorএখানে, স্ট্রিংয়ের ইনডেক্স 2 থেকে 5-এর আগ পর্যন্ত অংশ কাটা হয়েছে, তাই আউটপুটে 'dor' এসেছে।
তবে তুই যদি স্লাইসের ভিতরে একটা মান দেস, তাহলে যে ইনডেক্সের মান দিছস, সেটা থেকে শুরু করে শেষ পর্যন্ত যতটুকু আছে, সেটা তোকে দিয়ে দিবে।
const address = 'andorKilla';
const part2 = address.slice(5);
console.log(part2);
Output: Killaকোপা Split শামসু
তুই খাসির মাংসের একটা টুকরা নিয়ে আসলি সালাদ নিতে। এসে দেখস, শসা কেউ কাটে নাই; বরং অন্যরা তোকে বলতেছে শসা কাটতে। এখন তুই কী করবি। আস্ত একটা শসাকে একটার পর একটা কোপ মারতে মারতে (কোপা শামসুর মতো) অনেকগুলা ছোট ছোট টুকরা বের করস।
স্ট্রিংয়ের ক্ষেত্রেও মাঝেমধ্যে দরকার হতে পারে। বড় একটা স্ট্রিং আছে, তুই এখন এইটাকে কোনো একটা কিছু দিয়ে আলাদা ছোট ছোট অংশে ভাগ করবি। ভাগ করার কাজটাকে বলে split করা। স্প্লিট করার জন্য কী দিয়ে স্প্লিট করা হবে বা কী দিয়ে আলাদা করানো হবে, সেটা দিতে হয়। সেটাকে ডিলিমিটার বলে। যেমন, নিচের স্ট্রিংয়ের মধ্যে প্রত্যেকটা শব্দের মাঝে মাঝে একটা করে গ্যাপ বা হোয়াইট স্পেস আছে। তোর ইচ্ছা হচ্ছে, এইসব হোয়াইট স্পেস দিয়ে আমি স্ট্রিংটাকে ছোট ছোট টুকরা করে আলাদা করে ফেলবি।
আলাদা করার মানে হচ্ছে, তুই শব্দগুলোকে আলাদা করে এই শব্দগুলাকে একেকটা উপাদান বানিয়ে সেই শব্দগুলাকে একটা অ্যারের মধ্যে রাখবি।
এইটা করার জন্য স্ট্রিংয়ের ভেরিয়েবলে নাম লিখে তারপর স্প্লিট লিখে ব্র্যাকেটের ভিতরে হোয়াইট স্পেস দিয়ে দিবি। তাহলেই আউটপুট হিসেবে সবগুলা শব্দ আলাদা হয়ে একটা অ্যারের মধ্যে চলে আসবে। কী মজা!!
const sentence = "i am a good and hardworking person";
console.log(sentence.split(' '));
Output: ['i', 'am', 'a', 'good', 'and', 'hardworking', 'person']এখানে স্পেস দিয়ে ভাগ করে প্রতিটি শব্দ আলাদা করা হয়েছে।
অনেক সময় স্ট্রিংয়ের মধ্যে অনেকগুলা কমা দিয়ে বা সেমিকোলন দিয়ে আলাদা করা থাকে। এখন তুই যদি চাস, এই স্ট্রিংয়ের ভিতরের কিছু একটা দিয়ে টুকরা টুকরা করে ছোট ছোট অংশ বের করে অংশগুলাকে একটা একটা অ্যারের মধ্যে রাখবি, যাতে তুই জানতে পারস, কয়টা জিনিস আছে বা দরকার হলে সেই জিনিসগুলার ওপরে লুপ চালাতে পারবি বা অন্য কিছু করতে পারবি।
const friendStr = "Rahim,kahim,dahim,lahim,fahim,sahim";
const friends = friendStr.split(',');
console.log(friends);
Output: ['Rahim', 'kahim', 'dahim', 'lahim', 'fahim', 'sahim']জনি ভাইয়ের join
স্প্লিট দিয়ে আলাদা করবি, join দিয়ে জোড়া লাগাবি।
মাঝেমধ্যে array-এর উপাদানগুলাকে জোড়া দিয়ে দিয়ে একটা স্ট্রিং বানানোর দরকার পড়তে পারে। তখন join ইউজ করা হয়। join করার সময় join লেখার পর ব্র্যাকেটের ভিতরে চাইলে কিছু একটা দেয়া যায়, তাহলে সেটা array-এর সব উপাদানের মাঝে বসে একটা স্ট্রিং হয়ে যাবে।
const realFriend = ['Rahim', ' kahim', ' dahim', ' lahim', ' fahim', ' sahim'];
console.log(realFriend.join('|'));
Output: Rahim| kahim| dahim| lahim| fahim| sahimবন্ধুত্বের concat বন্ধন
এক বা একধিক স্ট্রিংকে জোড়া দিয়ে একটা স্ট্রিং বানানোর জন্য স্ট্রিংগুলার মাঝখানে প্লাস চিহ্ন দিয়ে জোড়া দেয়া যায়।
const first = 'Abid';
const middle = 'Khan';
const last = 'Islam';
const name = first + middle + last;
console.log(name);
Output: AbidKhanIslamএ ছাড়াও এক বা একাধিক স্ট্রিংকে জোড়া দিয়ে একটা স্ট্রিং বানানোর ভালো সিস্টেম হচ্ছে concat ইউজ করা। জাস্ট কোনো একটা স্ট্রিং বা স্ট্রিং টাইপ ভেরিয়েবলের পর ডট চিহ্ন দিয়ে তারপর concat লিখে সেটার ভিতরে এক বা একাধিক স্ট্রিং দিয়ে দিতে পারবি। যদি একাধিক স্ট্রিং জোড়া লাগাতে চাস, তাহলে concat-এর ভিতরে কমা দিয়ে দিয়ে একাধিক স্ট্রিং দিয়ে দিবি।
const str1 = "Hello";
const str2 = "World";
const result = str1.concat(" ", str2);
console.log(result);
Output: "Hello World"
const result2 = "I".concat(" love", " JavaScript");
console.log(result2);
Output: "I love JavaScript"ছোট ভাই substring
কখনো কখনো পুরাটা দরকার নাই। ছোট অংশ দরকার। সেক্ষেত্রে তুই স্ট্রিংকে slice করে নিতে পারবি। স্লাইসের কাছাকাছি আরেকটা জিনিস আছে। যেটাকে substring বলে। sub মানে ছোট। সোজা বাংলায় বললে subString বলতে বুঝায় স্ট্রিংয়ের ছোট একটা অংশ।
const str = "JavaScript Essentials";
const extractedPart = str.substring(4, 8);
console.log(extractedPart);
Outputs: "Scri"slice-এর substring দুইটাকে স্ট্রিংয়ের ছোট অংশ কাটার জন্য ইউজ করা যায়। তবে কিছু খুচরা ডিফারেন্স আছে।
Practice:
- তোর একগাদা বন্ধুর নাম তোকে একটা স্ট্রিং আকারে দিছে "Raju,Rana,Hasan,Kabir,Mahi"। এদের নামগুলো আলাদা বের করে একটা অ্যারে বানিয়ে ফেল।
- তুই একটা অ্যারের মধ্যে তোর বন্ধুদের নাম লিখেছিস। এবার নামগুলো একটা স্ট্রিং আকারে বের করবি, আর প্রতিটা নামের মাঝে কমা(“,”) থাকবে।
- "function if else while" এই স্ট্রিংটাকে স্পেস দিয়ে ভাগ করে প্রতিটা কি-ওয়ার্ড আলাদা করে অ্যারেতে রাখ।
- একটি অ্যারে আছে languages=["JavaScript", "Python", "Java"]। এই অ্যারের প্রতিটা ভাষার নামকে একটি স্ট্রিং বানিয়ে প্রতিটার মাঝে সেমিকোলন যোগ কর।
- একটি স্ট্রিং দেওয়া আছে "for,while,for-in,for-of,do-while"। এই স্ট্রিং থেকে লুপগুলোর নাম আলাদা করার জন্য split ব্যবহার কর।
- একটা স্ট্রিং দেওয়া আছে " console log debug "। এই স্ট্রিং থেকে শুরুর এবং শেষের ফাঁকা জায়গা রিমুভ করে ফেল।
- const str1 = "push"; const str2= "pop"; const str3 = "shift"; const str4 = "unshift" এই এই স্ট্রিংগুলাকে জোড়া দিয়ে একটা স্ট্রিং বানিয়ে ফেল। concat ইউজ করে।
- "Hello JavaScript Developers" এই স্ট্রিং থেকে "JavaScript" অংশটা বের কর।
- একটা স্ট্রিং আছে "Code more learn more"। স্ট্রিংটা থেকে "learn" অংশটা substring দিয়ে বের কর।