কম্পিউটার টিউটোরিয়াল

জাভাতে charAt: ধাপে ধাপে গাইড

জাভা charAt() মেথড একটি স্ট্রিং-এ নির্দিষ্ট ইনডেক্স পজিশনের ক্যারেক্টার রিটার্ন করে। একটি স্ট্রিং-এ প্রথম ক্যারেক্টারটির ইনডেক্স পজিশন ০। charAt() একটি একক ক্যারেক্টার রিটার্ন করে। এটি ক্যারেক্টারের কোন রেঞ্জ রিটার্ন করে না।


যখন আপনি জাভাতে স্ট্রিং নিয়ে কাজ করছেন, আপনি জানতে চাইতে পারেন স্ট্রিং-এ কোন নির্দিষ্ট পজিশনে কোন ক্যারেক্টার আছে।

সেখানে charAt() মেথডটি কাজে আসে। জাভা charAt() মেথড একটি স্ট্রিং-এ নির্দিষ্ট পজিশনের সাথে যুক্ত ক্যারেক্টার খুঁজে বের করতে ব্যবহৃত হয়। এটি একটি স্ট্রিং-এ একাধিক ক্যারেক্টারও রিটার্ন করতে পারে।

উদাহরণস্বরূপ, ধরুন আপনি একটি প্রোগ্রাম লিখছেন যা একটি ইউএস টেলিফোন এরিয়া কোডের সাথে যুক্ত লোকেশনগুলো রিট্রিভ করে। আপনি একটি ফোন নম্বর ধারণকারী স্ট্রিং-এ প্রথম তিনটি ক্যারেক্টার রিট্রিভ করতে চাইতে পারেন।

এই টিউটোরিয়ালে জাভাতে charAt() ব্যবহার করার পদ্ধতি আলোচনা করা হয়েছে, উদাহরণের সাথে।

জাভা স্ট্রিং রিফ্রেশার

স্ট্রিংস যেকোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে একটি গুরুত্বপূর্ণ ডেটা টাইপ কারণ সেগুলো আপনাকে আপনার কোডে টেক্সট-বেসড ডেটা নিয়ে কাজ করতে দেয়। জাভাতে, স্ট্রিংস ডবল কোটেশন মার্কস ("") এর ভিতরে লিখা হয়। জাভাতে একটি স্ট্রিং ডিক্লেয়ার করার উদাহরণ:

String company = "Google";

উপরে ডিফাইন করা company ভেরিয়েবলটির নিচের ইনডেক্স ভ্যালুগুলো থাকবে:

Google
012345

প্রথম অক্ষর 'G'-র ইনডেক্স ০ হবে, যখন অক্ষর 'L'-র ইনডেক্স ৪ হবে।

জাভা charAt

বিল্ট-ইন জাভা স্ট্রিং charAt() মেথড একটি স্ট্রিং-এ নির্দিষ্ট ইনডেক্স পজিশনের ক্যারেক্টার রিটার্ন করে। প্রথম ক্যারেক্টারটির ইনডেক্স ভ্যালু ০ এবং স্ট্রিং-এ পরবর্তী ক্যারেক্টারগুলোর জন্যও এভাবে ধরে যেতে পারে।

আপনি যদি একটি স্ট্রিং-এ প্রথম ক্যারেক্টারটি, অথবা নয়মটি রিট্রিভ করতে চান, আপনি charAt() ব্যবহার করতে পারেন। charAt() মেথডের সিনট্যাক্স নিচের মতো:

char = string_name.charAt(index)

charAt() একটি প্যারামিটার গ্রহণ করে: যে ক্যারেক্টারটি আপনি রিট্রিভ করতে চান তার ইনডেক্স পজিশন।

charAt জাভা উদাহরণ

ধরা যাক আমরা একটি কফি শপ চালাচ্ছি। আমরা যেসব কাস্টমারের নাম G অক্ষরে শুরু হয় তাদেরকে ৫% ডিসকাউন্ট দিচ্ছি। এটি সেলস বাড়াতে এবং বেশি মানুষ দোকানে আকর্ষণ করার একটি প্রোমোশনের অংশ।

আমরা একটি প্রোগ্রাম তৈরি করতে চাই যা একটি বারিস্টাকে দেওয়া নামের প্রথম অক্ষর রিট্রিভ করবে। আমরা নিচের কোড ব্যবহার করে এটি করতে পারি:

public class GetFirstLetter { 
    public static void main (String[] args) { 
        String name = "GRAHAM HENDERSON"; 
        char letter = name.charAt(0); 
        System.out.println("The first letter of " + name + "'s name is " + letter + "."); 
    } 
}

যখন আমরা আমাদের কোড রান করি, প্রোগ্রাম নিচের রেসপন্স রিটার্ন করে:

The first letter of GRAHAM HENDERSON's name is G.

প্রথমে, আমরা GetFirstLetter নামে একটি ক্লাস তৈরি করি, যা আমাদের কোড সংরক্ষণ করে। তারপর, আমরা name নামে একটি জাভা ভেরিয়েবল ডিফাইন করি। এই স্ট্রিং আমাদের কাস্টমারের নাম সংরক্ষণ করে। এই কেসে, আমাদের কাস্টমারের নাম ছিল Graham Henderson। আমরা কাস্টমার নাম বড় হাতের অক্ষরে লিখতে সিদ্ধান্ত নিয়েছি যাতে নাম ভুল পড়ার চান্স কম থাকে।

পরবর্তী লাইনে, আমরা letter নামে একটি ভেরিয়েবল ডিফাইন করি। আমরা "char" ডেটা টাইপ ব্যবহার করেছি কারণ letter শুধু একটি ক্যারেক্টার সংরক্ষণ করবে।

এই ভেরিয়েবলে আমরা মান অ্যাসাইন করি name.charAt(0)। এটি আমাদের স্ট্রিং-এ প্রথম ক্যারেক্টার রিটার্ন করে। অন্য কথায়, আমরা ইনডেক্স ভ্যালু ০-র ক্যারেক্টারটি রিট্রিভ করি। এই কেসে, charAt() মেথডটি G ক্যারেক্টারটি রিটার্ন করল।

তারপর, আমরা কনসোলে একটি মেসেজ প্রিন্ট আউট করি যা আমাদের নির্দিষ্ট ইনডেক্সের ক্যারেক্টারটি বলে দিয়েছিল, যা এই কেসে ১।

অন্য একটি ক্যারেক্টার রিট্রিভ করুন

যদি আমরা স্ট্রিং-এ দ্বিতীয় ক্যারেক্টারটি রিট্রিভ করতে চাই, আমরা আমাদের কোডে নিচের পরিবর্তন করতে পারি:

... 
String name = "GRAHAM HENDERSON"; 
char letter = name.charAt(1); 
System.out.println("The second letter of " + name + "'s name is " + letter + "."); 
...

আমরা দুটি পরিবর্তন করেছি। প্রথমে, আমরা charAt() int ইনডেক্স মেথডের ইনডেক্স নম্বরকে ১-এ পরিবর্তন করেছি, যা আমাদের স্ট্রিং-এ দ্বিতীয় ক্যারেক্টারকে রিপ্রেজেন্ট করে। দ্বিতীয়, আমরা প্রিন্ট মেসেজকে The second letter of... এ পরিবর্তন করেছি, The first letter of... এর বদলে।

আমাদের কোড রিটার্ন করে: R। এটি একটি নতুন স্ট্রিং। আমাদের মূল স্ট্রিং পরিবর্তন হয়নি।

যে(type) দেখতে পাচ্ছেন, আমাদের কোড আমাদের স্ট্রিং-এ দ্বিতীয় ক্যারেক্টারটি রিট্রিভ করল।

জাভা স্ট্রিং charAt: কাউন্ট অকারেন্স উদাহরণ

charAt() মেথডের একটি উপযোগী অ্যাপ্লিকেশন হলো কাউন্ট অকারেন্স অ্যালগরিদমে। কাউন্ট অকারেন্স অ্যালগরিদম কাউন্ট করে একটি নির্দিষ্ট ভ্যালু কতবার একটি স্ট্রিং, লিস্ট, বা অন্যান্য ইটারেবল অবজেক্টে দেখায়।

আমাদের কফি শপের উদাহরণে ফিরে যাই। ধরুন আমাদের ডিসকাউন্ট দাবি করার জন্য অনেক কাস্টমার আসছেন কারণ G একটি খুব কমন প্রথম অক্ষর নামের জন্য। আমরা আমাদের ডিল পরিবর্তন করলাম যাতে আপনি ৫% ছাড় পাবেন শুধু তখন যখন আপনার নামে দুইটির বেশি G থাকে।

এখানে একটি কাস্টমার আমাদের ডিসকাউন্টের যোগ্য কিনা তা ক্যালকুলেট করার কোড দেওয়া হলো:

class GetLetters { 
    public static void main (String[] args) { 
        String name = "GRAHAM HENDERSON"; 
        int counter = 0; 
        for (int i = 0; i <= name.length() - 1; i++) { 
            if (name.charAt(i) == 'G') { 
                counter++; 
            } 
        } 
        System.out.println(name + "'s" + " name contains " + counter + " G."); 
    } 
}

যখন আমরা আমাদের কোড রান করি, প্রোগ্রাম নিচের রেসপন্স রিটার্ন করে:

GRAHAM HENDERSON's name contains 1 G.

প্রথমে, আমরা GetLetters নামে একটি ক্লাস ডিফাইন করি, যা আমাদের প্রোগ্রামের কোড সংরক্ষণ করে। তারপর, আমরা name নামে একটি ভেরিয়েবল ডিফাইন করি যা আমাদের কাস্টমারের নাম সংরক্ষণ করে।

আমরা counter নামে একটি ভেরিয়েবল ডিফাইন করি যা ট্র্যাক রাখে আমাদের স্ট্রিং-এ G অক্ষর কতবার আছে। তারপর, আমরা একটি জাভা for লুপ তৈরি করি যা আমাদের name ভেরিয়েবল-এর প্রতিটি ভ্যালুতে তাকায়।

name.length() -1 আমাদের বলে দেয় আমাদের লুপ চলতে থাকবে যতক্ষণ না সেটি name স্ট্রিং-এ প্রতিটি অক্ষরের মাধ্যমে পাস করে যায়।

পরবর্তী, আমরা একটি if স্টেটমেন্ট ডিফাইন করি। এই স্টেটমেন্ট চেক করে ইনডেক্স পজিশন i-এর ক্যারেক্টার। এটি আমাদের for লুপের वो অংশ যা প্রতিবার লুপ রান হলে বাড়ে, কি G এর সমান।

নোট করুন যে এই কম্পারিজন কেস-সেনসিটিভ। যদি আমাদের নামগুলো লোয়ারকেসে রেকর্ড করা থাকত, name.charAt(i) == 'G' স্টেটমেন্টটি কখনো true ইভ্যালুয়েট করত না।

যদি ইনডেক্স পজিশন i-এর ক্যারেক্টার G এর সমান হয়, আমাদের কাউন্টার ১ করে বাড়ে। আমাদের কোডের শেষ লাইনে, আমরা প্রোগ্রামকে কনসোলে একটি মেসেজ প্রিন্ট আউট করার নির্দেশ দিই। এই মেসেজ আমাদের বলে দেয় ক্যারেক্টার G কতবার কাস্টমারের নামে দেখায়।

উপসংহার

জাভা charAt() মেথড একটি স্ট্রিং-এ নির্দিষ্ট ইনডেক্স ভ্যালুতে থাকা ক্যারেক্টারটি রিট্রিভ করে। উদাহরণস্বরূপ, আমরা charAt() ব্যবহার করতে পারি একটি স্ট্রিং-এ ১০ম ক্যারেক্টারটি, অথবা ১৫ম ক্যারেক্টারটি রিট্রিভ করতে।

এই টিউটোরিয়ালে জাভাতে charAt() মেথড ব্যবহার করার পদ্ধতি এক্সপ্লোর করা হয়েছে। আমরা charAt() মেথড ব্যবহারের একটি উদাহরণ ধাপে ধাপে দেখেছি, এবং আমরা এছাড়াও আলোচনা করেছি charAt() কীভাবে জাভা কাউন্ট অকারেন্স অ্যালগরিদমের সাথে ব্যবহার করা যায়।

আপনি এখন charAt() জাভাতে একজন এক্সপার্টের মতো ব্যবহার করার জন্য প্রস্তুত! জাভা সম্পর্কে আরও জানতে, আমাদের How to Code in Java গাইড পড়ুন।

  1. জাভা কম্পাইলার: ধাপে ধাপে গাইড

  2. জাভাতে % ব্যবহার করে স্ট্রিং ফরম্যাটিং

  3. জাভাতে স্ট্রিং ইন্টার্নিং (String Interning)

  4. জাভাতে StringIndexOutOfBoundsException কী?