স্ট্রিং (Strings)
স্ট্রিং — কেবল সাধারণ টেক্সট নয় (Strings — More Than Just Text)
জাভাতে একটি স্ট্রিং (String) কে অনেকটা বোতাম বা পুঁতির তৈরি একটি মালার মতো কল্পনা করতে পারেন। প্রতিটি পুঁতির (ক্যারেক্টার বা অক্ষর) একটি নির্দিষ্ট নম্বর থাকে যা ০ (0) থেকে শুরু হয়। "Hello" শব্দটিতে মোট ৫টি অক্ষর রয়েছে: H রয়েছে ০ নম্বরে, e ১ নম্বরে, l ২ নম্বরে, l ৩ নম্বরে, এবং o ৪ নম্বরে।
জাভাতে স্ট্রিংগুলো ইমিউটেবল (immutable) — অর্থাৎ একবার তৈরি হয়ে যাওয়ার পর এদের আর পরিবর্তন করা যায় না। প্রতিবার আপনি যখন কোনো স্ট্রিংকে "পরিবর্তন" করার চেষ্টা করেন, জাভা মূলত পর্দার আড়ালে সম্পূর্ণ নতুন আরেকটি স্ট্রিং তৈরি করে ফেলে। এটি অনেকটা কাগজের ওপর লেখা কালির মতো — আপনি কালি মুছতে পারবেন না, বরং আপনাকে নতুন আরেকটি কাগজ নিতে হবে।
প্রয়োজনীয় স্ট্রিং মেথড (Essential String Methods)
বহুল ব্যবহৃত == এবং .equals() এর দ্বন্দ্ব (The Great == vs .equals() Debate)
জাভা শেখার শুরুতে এই ব্যাপারটি সবাইকে বেশ ভালোই ভোগায়। ঘটনাটি হলো এরকম:
==যাচাই করে যে দুটি ভ্যারিয়েবল একই মেমরি লোকেশন বা ঠিকানায় থাকা বস্তুকে নির্দেশ করছে কি না। এটি অনেকটা এমন প্রশ্ন করার মতো, "এই দুটি চাবি কি একই লকারের?"- অন্যদিকে
.equals()যাচাই করে যে দুটি স্ট্রিংয়ের ভেতরের কনটেন্ট বা লেখাগুলো হুবহু একই কি না। এটি অনেকটা এমন বলার মতো, "এই দুটি কাগজের পাতায় কি একই বাক্য লেখা আছে?"
বেশিরভাগ ক্ষেত্রেই, আপনার .equals() ব্যবহার করা প্রয়োজন হবে। স্ট্রিংয়ের ক্ষেত্রে == ব্যবহার করলে আপনি অদ্ভুত সব ফলাফল পেতে পারেন, কারণ জাভা অনেক সময় আগে থেকে থাকা একই স্ট্রিং অবজেক্ট পুনরায় ব্যবহার করে, আবার অনেক সময় করে না।
equals() বনাম == এবং String.format()
স্ট্রিংবিল্ডার — যখন প্রয়োজন দ্রুতগতির পারফরম্যান্স (StringBuilder — When You Need Speed)
+ চিহ্ন দিয়ে সাধারণ স্ট্রিং কনক্যাটেনেশন (concatenation) করলে প্রতিবারই নতুন একটি String অবজেক্ট তৈরি হয়, যা অনেকটা একটি মাত্র শব্দ যোগ করার জন্য পুরো একটি বই নতুন করে লেখার মতো। StringBuilder অনেকটা হোয়াইটবোর্ডের (whiteboard) মতো — এটি মোছা যায় এবং আপনি চাইলে এতে শুধু নতুন নতুন জিনিস যুক্ত করতে পারেন।ছোট কুইজ
পড়া চালিয়ে যান