জাভাতে স্ট্রিং পার্সিং – split

সাধারণত বড় কোন স্ট্রিং বা টেক্সট থেকে ডেটা এক্সট্রাক্ট করার জন্য স্ট্রিং পার্সিং এর দরকার হয়। অনেক ভাবেই করা যায়, যেমন Split মেথড, StringTokenizer ইত্যাদি। এখানে আমরা দেখব কিভাবে split নিয়ে কাজ করা যায়। এটি দিয়ে কোন স্টিং কে যে কোন delimiter দিয়ে টোকেনাইজ করা যায়। টোকেন বলতে পার্স করার পর তথ্য গুলো। স্প্লিট করার পর টোকেন গুলোর একটি অ্যারে রিটার্ণ করে। নিচের উদাহরণটা দেখিঃ

public class Main {

    public static void main(String[] args) {
        String text = "Country,bn,Bangladesh";

        String[] tokens = text.split(",");

        for (int i = 0; i < tokens.length; i++)
            System.out.println(tokens[i]);
    }
}

একটা স্ট্রিং নিয়েছি আমরা। split মেথডের ভেতর একটা কমা দিয়েছি। এর মানে হচ্ছে কমা প্রতিটা কমার আগ পর্যন্ত হচ্ছে একটা তথ্য বা একটা টোকেন। এগুলোকে আলাদা আলাদা করে দাও। আর তথ্য বা টোকেন গুলো রেখেছি tokens নামক একটা স্ট্রিং অ্যারেতে। পরে যখন আমরা tokens অ্যারে প্রিন্ট করেছি, আমরা পেয়েছিঃ

Country
bn
Bangladesh

এখানে কমার পরিবর্তে আমরা যে কোন ক্যারেক্টার, শব্দ বা রেগুলার এক্সপ্রেশন ব্যবহার করতে পারব।

আমরা চাইলে একের অধিক delimiter ব্যবহার করতে পারি। যেমনঃ

public class Main {

    public static void main(String[] args) {

        String text = "This is a sentence. Is it a question? Yahoo!";

        String[] tokens = text.split("[.?!]+");

        for (int i = 0; i < tokens.length; i++)
            System.out.println(tokens[i]);
    }
}

এখানে আমরা একটা প্যারাগ্রাফের প্রতিটা বাক্য আলাদা আলাদা করেছি। উপরে দেখুন একটা + ব্যবহার করার কারণ হচ্ছে delimiter গুলোকে আলাদা আলদা ভাবে পড়তে। রেগুলার এক্সপ্রেশন। + ব্যবহার না করে দেখুন কি হয়। রেগুলার এক্সপ্রেশন নিয়ে বিস্তারিত আরেকটা আর্টিকেল লেখার চেষ্টা করব।

Leave a Reply