ডট (.) মেটাক্যারেক্টার
রেগেক্সে `.` (ডট) মেটাক্যারেক্টার নিউলাইন ছাড়া যেকোনো একক ক্যারেক্টার ম্যাচ করে। ডিফল্ট মোডে `\n` ম্যাচ করে না (Pattern.DOTALL মোডে করে)।
পদ্ধতি: সকল ক্যারেক্টার প্রিন্ট
- রেজেক্স `
.` কম্পাইল করুন। - `Matcher` অবজেক্ট তৈরি করুন।
- `while(matcher.find())` লুপে `matcher.group()` প্রিন্ট করুন।
কোড উদাহরণ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PrintAllCharsExample {
public static void main(String[] args) {
// ডট মেটাক্যারেক্টার: যেকোনো ক্যারেক্টার (নিউলাইন বাদে)
String regex = ".";
Scanner sc = new Scanner(System.in);
System.out.println("আপনার ইনপুট স্ট্রিং লিখুন: ");
String input = sc.nextLine();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println(m.group());
}
}
}
আউটপুট উদাহরণ
আপনার ইনপুট স্ট্রিং লিখুন: This is a sample text
T
h
i
s
i
s
a
s
a
m
p
l
e
t
e
x
t
দ্রষ্টব্য
- স্পেস ও পাঙ্কচুয়েশনও প্রিন্ট হয় (প্রতিটি লাইনে একটি ক্যারেক্টার)।
- নিউলাইন (`\n`) ম্যাচ করতে হলে `Pattern.compile(".", Pattern.DOTALL)` বা `(?s).` ব্যবহার করুন।
- এটি শুধু ডেমো; বাস্তবে `input.split("")` বা `toCharArray()` দ্রুত।
বিকল্প পদ্ধতি (রেগেক্স ছাড়া)
// জাভা ৮+ স্ট্রিম
input.chars().forEach(c -> System.out.println((char)c));
// বা ক্লাসিক
for (char c : input.toCharArray()) {
System.out.println(c);
}
সারসংক্ষেপ
রেগেক্স ডট (`.`) মেটাক্যারেক্টার যেকোনো একক ক্যারেক্টার ম্যাচ করে। `while(matcher.find()) System.out.println(matcher.group())` লুপ দিয়ে স্ট্রিংয়ের প্রতিটি ক্যারেক্টার আলাদা লাইনে প্রিন্ট করা যায়। শিক্ষামূলক উদ্দেশ্যে ভালো, কিন্তু প্রোডাকশনে `toCharArray()` বা `chars()` ব্যবহার করুন।