প্রোগ্রামিং জগতে শব্দ গণনা করা একটি সাধারণ কাজ। উদাহরণস্বরূপ, একটি বাক্যের মধ্যে কতগুলো শব্দ রয়েছে তা জানতে, লেখার দৈর্ঘ্য নির্ধারণ করতে, SEO টাইটেল বা ডিস্ক্রেপশন বিশ্লেষণ করতে, কিংবা কন্টেন্ট প্রক্রিয়াকরণের জন্য ইত্যাদি। আজকের ব্লগে উপরিল্লোখিত সমস্যার সমাধান কিভাবে JavaScript ব্যবহার করে সহজভাবে করা যায় এবং একটি স্ট্রিং - এর শব্দ সংখ্যা বের করা যায় তা নিয়ে বিস্তারিত কোডসহ আলোচনা করবো।
function countWords(str) {
// বাড়তি স্পেস সড়ানো হয়েছে
str = str.trim();
// যদি স্ট্রিং ফাঁকা থাকে, তাহলে কোনো শব্দ নেই
if (str === "") {
return 0;
}
// স্পেস দিয়ে স্ট্রিংটি ভাগ করে এবং অ্যারের দৈর্ঘ্য রিটার্ন করা হয়েছে
const words = str.split(/\s+/);
return words.length;
}
// উদাহরণ
const sentence = "notesaid24 provides best programming tutorial";
console.log(countWords(sentence)); // আউটপুট: ৫
ব্যাখ্যা:
- প্রথমে trim() মেথড ব্যবহার করে স্ট্রিং - এর শুরুর ও শেষের বাড়তি স্পেসগুলো সরিয়ে ফেলা হয়, যেন শব্দের গণনা সঠিক হয়।
- split(/\s+/) মেথডটি ব্যবহার করে স্পেস অনুযায়ী স্ট্রিংটিকে ভাগ করি। এখানে /\s+/ একটি রেগুলার এক্সপ্রেশন যা এক বা একাধিক স্পেসকে আলাদা করে।
- এরপর আমরা অ্যারের দৈর্ঘ্য (length) ব্যবহার করে মোট শব্দের সংখ্যা বের করি।
পদ্ধতি ২ –
function countWordsUsingMatch(str) {
// ট্রিম করে বাড়তি স্পেস সরিয়ে ফেলা হয়েছে
str = str.trim();
// রেগুলার এক্সপ্রেশন দিয়ে শব্দগুলো খুঁজে বের করা
const words = str.match(/\b\w+\b/g);
// যদি কোনো শব্দ না থাকে ০ রিটার্ণ, অন্যথায় মোট শব্দ সংখ্যা রিটার্ন করে
return words ? words.length : 0;
}
// উদাহরণ
const sentence = "notesaid24 provides best programming tutorial";
console.log(countWordsUsingMatch(sentence)); // আউটপুট: ৫
ব্যাখ্যা: /\b\w+\b/g এই রেগুলার এক্সপ্রেশনটি প্রতিটি শব্দকে আলাদা করে নেওয়া হয়।
এখানে \b দিয়ে প্রতিটি শব্দের শুরু
ও শেষ চিহ্নিত করা হয় এবং \w+ দিয়ে প্রতিটি শব্দকে চিহ্নিত করা হয়।
পদ্ধতি ৩ –
function countWordsUsingReduce(str) {
// ট্রিম করে বাড়তি স্পেস সরিয়ে ফেলা হয়েছে
str = str.trim();
// যদি স্ট্রিং ফাঁকা থাকে, তাহলে ০ রিটার্ন
if (str === "") {
return 0;
}
// স্ট্রিংটি স্পেস দিয়ে ভাগ করে এবং reduce দিয়ে শব্দ গণনা করা
return str.split(/\s+/).reduce((count, word) => word ? count + 1 : count, 0);
}
// উদাহরণ
const sentence = "notesaid24 provides best programming tutorial";
console.log(countWordsUsingReduce(sentence)); // আউটপুট: ৫
ব্যাখ্যা: প্রথমে স্ট্রিংটি স্পেস দিয়ে বিভক্ত করা হয়, এরপর জাভাস্ক্রিপ্ট এর reduce
মেথডটি দিয়ে প্রত্যেকটি শব্দের উপর লুপ চালিয়ে গণনা
করা হচ্ছে।
পদ্ধতি ৪ –
function countWordsUsingLoop(str) {
// স্ট্রিংটি ট্রিম করে বাড়তি স্পেস সরিয়ে ফেলা হয়েছে
str = str.trim();
let count = 0;
let inWord = false;
// স্ট্রিং-এর প্রতিটি শব্দের উপর লুপ চালান হচ্ছে
for (let i = 0; i < str.length; i++) {
if (str[i] !== ' ') {
if (!inWord) {
count++;
inWord = true;
}
} else {
inWord = false;
}
}
return count;
}
// উদাহরণ
const sentence = "notesaid24 provides best programming tutorial";
console.log(countWordsUsingLoop(sentence)); // আউটপুট: ৫
ব্যাখ্যা: স্ট্রিংয়ের প্রতিটি শব্দকে যাচাই করা হয়। যদি শব্দের শুরুতে কোনো স্পেস
না থাকে, তাহলে একটি নতুন শব্দ হিসেবে
গণনা করা হয় এবং inWord ফ্ল্যাগটি true সেট করা হয়। যখন আবার স্পেস পাওয়া যায়,
inWord ফ্ল্যাগটি false
করে দেয়া হয়।
পদ্ধতি ৫ –
function countWordsUsingFilter(str) {
return str.split(' ').filter(word => word !== '').length;
}
// উদাহরণ
const sentence = "notesaid24 provides best programming tutorial";
console.log(countWordsUsingFilter(sentence)); // আউটপুট: ৫
ব্যাখ্যা: প্রথমে split(' ') ব্যবহার করে প্রতিটি শব্দ আলাদা করা হয় এবং filter
মেথড ব্যবহার করে ফাঁকা শব্দ বাদ দেয়া হয় এবং
অ্যারের দৈর্ঘ্য রিটার্ণ করা হয়।
ওয়েবসাইটটি বুকমার্ক করে রাখুন! পোষ্টটি যদি ভালো লাগে এবং বন্ধুরা যাতে মিস না করে, পোষ্টটি শেয়ার করতে ভুলবেন না। অবশ্যই লাইক ও কমেন্ট করবেন যাতে করে আমরা প্রতিনিয়ত নতুন নতুন সমস্যার পাশাপাশি সমাধান নিয়ে হাজির হতে পারি এবং আপনাদেরও যদি কোডিং সম্পর্কিত কোনো সমস্যা থাকে তাহলে কমেন্টবক্সে জানিয়ে দিন সমাধান করার চেষ্টা করবো, ইনশাআল্লাহ্।