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

জাভা রেগুলার এক্সপ্রেশন: POSIX ক্যারেক্টার ক্লাস \p{Sc} (Currency Symbols)


\p{Sc} ক্যারেক্টার ক্লাস

POSIX/Unicode ক্যাটেগরি `\p{Sc}` (Symbol, Currency) সমস্ত কারেন্সি সিম্বল ম্যাচ করে: `$`, `€`, `£`, `¥`, `₹`, `₩`, `₽`, `₺` ইত্যাদি।

উদাহরণ ১: কারেন্সি সিম্বল গণনা

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

public class PosixScExample1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("একটি স্ট্রিং লিখুন: ");
        String input = sc.nextLine();
        
        String regex = "\\p{Sc}"; // কারেন্সি সিম্বল
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        
        System.out.println("কারেন্সি সিম্বল সংখ্যা: " + count);
    }
}

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

একটি স্ট্রিং লিখুন: euro €, pounds £, dollar $, yen ¥
কারেন্সি সিম্বল সংখ্যা: 4

উদাহরণ ২: কারেন্সি সিম্বল ধারণকারী স্ট্রিং ফিল্টার

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

public class PosixScExample2 {
    public static void main(String[] args) {
        String regex = "^.*\\p{Sc}.*$"; // কারেন্সি সিম্বল থাকা স্ট্রিং
        Scanner sc = new Scanner(System.in);
        System.out.println("৫টি ইনপুট স্ট্রিং লিখুন: ");
        String[] input = new String[5];
        for (int i = 0; i < 5; i++) {
            input[i] = sc.nextLine();
        }
        
        Pattern p = Pattern.compile(regex);
        System.out.println("কারেন্সি সিম্বল ধারণকারী স্ট্রিংগুলো:");
        for (int i = 0; i < 5; i++) {
            Matcher m = p.matcher(input[i]);
            if (m.matches()) {
                System.out.println(m.group());
            }
        }
    }
}

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

৫টি ইনপুট স্ট্রিং লিখুন: 
hello
sample
243test
# #$$@
£shelling

কারেন্সি সিম্বল ধারণকারী স্ট্রিংগুলো:
# #$$@
£shelling

প্রমুখ কারেন্সি সিম্বল যিনিসের \p{Sc} এ*

সিম্বলনামUnicode
$ডলারU+0024
€ইউরোU+20AC
£পাউন্ডU+00A3
¥ইয়েন/ইউয়ানU+00A5
₹রুপিয়াU+20B9
₩ওয়ানU+20A9
₽রুবলU+20BD
₺লিরাU+20BA
₫ডংU+20AB
₪শেকেলU+20AA

সারসংক্ষেপ

`\p{Sc}` (Symbol, Currency) ইউনিকোড ক্যাটেগরি সব কারেন্সি সিম্বল ম্যাচ করে। ফিনান্সিয়াল ডেটা প্রসেসিং, প্রাইস এক্সট্রাকশন, ইন্টারন্যাশনালাইজেশন (i18n) অ্যাপ্লিকেশনে এটি অপরিহার্য। `Pattern.COMMENTS` মোডে `\p{Sc}` লিখতে পারেন আরও পঠনীয়তার জন্য।

  1. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{Alpha}

  2. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{ASCII}

  3. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{Upper}

  4. জাভা রেজেক্সে POSIX ক্যারেক্টার ক্লাস \p{Lower}