আমরা সাধারণত টেক্সট বলতে যেটা বুঝি সেটাই প্রোগ্রামিং এর ভাষায় “স্ট্রিং”। তো, যেহেতু এটা প্রোগ্রামিং ল্যাঙ্গুয়েজে আগে থেকেই নির্ধারিত করে দেওয়া থাকে, তাই এটি Primitive Data Type । আবার সম্পূর্ণ কোডই টেক্সট হয়, তাই স্ট্রিং কে অন্যান্য কোডের থেকে আলাদা করার জন্য কোটেশনের (” ” / ‘ ’) মধ্যে লিখতে হয়। শুধু alphabet না, কোটেশনের মধ্যে আবদ্ধ যেকোনো কিছুই স্ট্রিং।
var name = "Mahfuz Swaron";
var email = "mahfuz1234@gmail.com";
var phone = "+880-1716-157186";
এমনকি একেবারে কিছু না থাকলেও তা স্ট্রিং — Empty String
var empty = "";
কোটেশন ব্যবহারের সময় ✌ টা কথা মনে রাখবেন —
১। একই ধরণের কোটেশন দিয়ে শুরু এবং শেষ করতে হবে
২। যে কোটেশন দিয়ে শুরু হয়েছে সে কোটেশন মাঝে লিখা যাবে না।
var valid = 'single-single';
var valid_too = "mingle-mingle";
var invalid = 'single-mingle";
var invalid_too = "mingle-single';
var invalid_also = 'single 'single' single';
var also_invalid = "mingle "mingle" mingle";
তবে মধ্যখানে অন্য ধরণের কোটেশন লিখা যেতেই পারে —
var valid = "it's okay";
var valid_too = '"it" is okay also';
আবার একটূ চালাকিও করা যায় - escape character ( \ ) এর মাধ্যমে —
var string = "it's an \"escape\" technique";
Postmortem of String!
স্ট্রিং এর ক্যারেক্টারগুলো প্রত্যেকটা পর পর সাজানো থাকে। ফুলের মালার মতো ! ঠিক যেন সুতা দিয়ে বাঁধা। বাই দ্যা ওয়ে, String অর্থও কিন্তু দড়ি 😅 । আবার ক্যারেক্টার গুলোরও একটা ক্রম বা সিরিয়াল থাকে। যেমনটা থাকে ক্লাসের ছাত্র-ছাত্রীদের রোল নাম্বারের সিরিয়াল। এই রোল নাম্বারের আরেকটা সুন্দর নাম আছে — index । ইনডেক্স এর আরেকটা অসাধারণ বৈশিষ্ট্য হলো এটি 0 থেকে শুরু হয়, 1 থেকে না ( 0, 1, 2, 3, 4… )
ক্লাসে যেমন রোল নাম্বার ধরে ডাক দিলে আমরা yes sir / present sir বলি, তেমনই কোনো ক্যারেক্টারের ইনডেক্স ধরে ডাক দিলে তাকেও পাওয়া যাবে। চলুন ডেকে দেখি —
// Syntax:
// string[index]
var greet = "Hello";
console.log( greet[0] ); // output :> "H"
console.log( greet[1] ); // output :> "e"
একটা স্ট্রিং - এ কয়টা ক্যারেক্টার আছে সেটা string এর length
property তে স্টোর থাকে।
// Syntax
// string.length
var str = "World";
console.log(str.length) // output :> 5
আচ্ছা যদি 0 থেকে কম ( -1, -2, -3…. ) বা স্ট্রিং এর last index এর চেয়ে বেশি index এর ক্যারেক্টার বের করতে যাই তাহলে কি হবে?
var str = "abc";
console.log(str[3]); // output :> undefined
console.log(str[-5]); // output :> undefined
undefined
আউটপুট আসবে — ঠিকই তো, আমরা তো স্ট্রিং এর এসব ইনডেক্সে কোনো ক্যারেক্টার ডিফাইনই করি নাই। তাহলে কিভাবে পাবে!!
আচ্ছা ইনডেক্স দিয়ে তো ক্যারেক্টার বের করতে পারলাম। কিন্তু যদি আমরা কোনো ক্যারেক্টারের index ই বের করতে চাই, তাহলে কিভাবে করবো? চিন্তা নাই, তারও উপায় আছে — indexOf()
মেথড ।
যদি ক্যারেক্টারটি ঐ স্ট্রিং এ না থাকে তাহলে তার index হবে -1
// Syntax
// string.indexOf('character')
var text = "Bangladesh";
console.log(text.indexOf("B")); // output :> 0
console.log(text.indexOf("Z")); // output :> -1
অনেক তো হলো খোঁজা- খোঁজি, এবার একটু জোড়া-জোড়ি করা যাক…
Concatenation of String [con + cate + nation = কনক্যাটিনেশন ]
Concatenation মানে জোড়া দেওয়া। একাধিক স্ট্রিং কে জোড়া দিয়ে একটি স্ট্রিং বানানো, বিয়ের মাধ্যমে যেমন দুটি জীবন একসাথ হয় 🥰। by the way, উদাহরণ দেখা যাক —
// Syntax:
// string1 + string2 + string3 +......
var firstName = "Mahfuz";
var lastName = "Mozumdar";
var fullName = firstName + " " + lastName; // "Mahfuz Mozumdar"
কনক্যাট করার জন্য জাভাস্ক্রিপ্টে একটা বিল্ট-ইন মেথডও আছে — concat()
// Syntax:
// string1.concat(string2, string3,...many more);
var firstName = "Mahfuz";
var lastName = "Mozumdar";
var fullName = firstName.concat(" ", lastName); // "Mahfuz Mozumdar"
যদি কোনো নাম্বার স্ট্রিং রূপে থাকে তাহলে তার কনক্যাটিনেশন ও এমনই হবে
var number = "10";
console.log(number + 10); // output :> '1010'\
📌 সহজ কথায় বললে —
স্ট্রিং স্ট্রিং স্ট্রিং
তাদের খাড়া দুটি “শিং“
ক্যারেক্টার এর সিরিয়াল করে — indexing
তাদের জোড়া দেওয়ার মেথড হলো — কনক্যাটিনেটিং