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

জাভা রেগুলার এক্সপ্রেশন: স্পেস এবং পাঙ্কচুয়েশন দিয়ে স্ট্রিং স্প্লিট করা


রেজেক্স: স্পেস ও পাঙ্কচুয়েশন ম্যাচ

[!._,'@?\s] — এই ক্যারেক্টার ক্লাসে রয়েছে: এক্সক্লামেশন, ডট, আন্ডারস্কোর, কমা, সিংল কোট, @, ?, এবং হোয়াইটস্পেস (`\s`)।

উদাহরণ ১: ম্যাচ কাউন্ট

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SplitSpacePunctExample1 {
    public static void main(String[] args) {
        String input = "This is!a.sample\"text,with punctuation!marks";
        Pattern p = Pattern.compile("[!._,'@?\\s]");
        Matcher m = p.matcher(input);
        
        int count = 0;
        while (m.find()) {
            count++;
        }
        System.out.println("ম্যাচ সংখ্যা: " + count);
    }
}

আউটপুট উদাহরণ ১

ম্যাচ সংখ্যা: 8

StringTokenizer ব্যবহার করে স্প্লিট (লিগেসি)

import java.util.Scanner;
import java.util.StringTokenizer;

public class SplitSpacePunctExample2 {
    public static void main(String[] args) {
        String regex = "[!._,'@? ]"; // স্পেস অন্তর্ভুক্ত
        Scanner sc = new Scanner(System.in);
        System.out.println("একটি স্ট্রিং লিখুন: ");
        String input = sc.nextLine();
        
        StringTokenizer str = new StringTokenizer(input, regex);
        while (str.hasMoreTokens()) {
            System.out.println(str.nextToken());
        }
    }
}

আউটপুট উদাহরণ ২

একটি স্ট্রিং লিখুন: This is!a.sample text,with punctuation!marks@and_spaces
This
is
a
sample
text
with
punctuation
marks
and
spaces

মডার্ন পদ্ধতি: String.split() বা Pattern.split()


// String.split() - সহজ
String[] tokens = input.split("[!._,'@?\\s]+");
// + কোয়ান্টিফায়ার যোগ করলে একাধিক সিকোয়েন্সিয়াল ডিলিমিটার একই সাথে হ্যান্ডেল হয়

// Pattern.split() - রিয়ুজেবল
Pattern p = Pattern.compile("[!._,'@?\\s]+");
String[] tokens = p.split(input);

StringTokenizer vs split()

বিষয়StringTokenizerString.split()
রেজেক্স সাপোর্টনা (লিটারেল ডিলিমিটার)হ্যাঁ (ফুল রেজেক্স)
খালি টোকেনআড়াল করেরাখে (লিমিট নেগেটিভ হলে)
পারফরম্যান্সফাস্ট (সিম্পল কেস)স্লোওয়ার (রেজেক্স কম্পাইল)
স্ট্যাটাসলিগেসি (ডিসকourageড)স্ট্যান্ডার্ড

সারসংক্ষেপ

স্পেস ও পাঙ্কচুয়েশন দিয়ে স্ট্রিং স্প্লিট করার জন্য `[!._,'@?\\s]+` রেজেক্স ব্যবহার করুন। `String.split()` বা `Pattern.split()` মডার্ন এবং রেজেক্স-ফ্রেন্ডলি। `StringTokenizer` লিগেসি, এভয়েড করুন। `+` কোয়ান্টিফায়ার যোগ করলে একাধিক সিকোয়েন্সিয়াল ডিলিমিটার একসাথে হ্যান্ডেল হয়।

  1. জাভা রেগেক্স দিয়ে হোয়াইটস্পেস ম্যাচ করা (\s)

  2. জাভা প্রোগ্রাম: স্ট্রিং-এ স্বরবর্ণ গণনা করা

  3. পাইথন প্রোগ্রাম: স্ট্রিং নেওয়া এবং সব ব্ল্যাঙ্ক স্পেস হাইফেন দিয়ে রিপ্লেস করা

  4. পাইথনে স্ট্রিং স্প্লিট ও জয়েন করার প্রোগ্রাম