নন-প্রিন্টেবল ক্যারেক্টারস ও তাদের হেক্স রিপ্রেজেন্টেশন
সাধারণত ব্যবহৃত ৭টি নন-প্রিন্টেবল ক্যারেক্টার এবং তাদের হেক্সাডেসিমেল রিপ্রেজেন্টেশন:
| নাম | এস্কেপ সিকোয়েন্স | হেক্সাডেসিমেল |
|---|---|---|
| বেল (Bell) | \a | 0x07 |
| এস্কেপ (Escape) | \e | 0x1B |
| ফর্ম ফিড (Form Feed) | \f | 0x0C |
| লাইন ফিড (Line Feed) | \n | 0x0A |
| ক্যারেজ রিটার্ন (Carriage Return) | \r | 0x0D |
| হরিজন্টাল ট্যাব (Horizontal Tab) | \t | 0x09 |
| ভার্টিক্যাল ট্যাব (Vertical Tab) | \v | 0x0B |
উদাহরণ ১: ট্যাব স্পেস গণনা (\t ব্যবহার করে)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class NonPrintableExample1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
String regex = "\\t"; // ট্যাব ম্যাচ
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ১
sample text with tab spaces
দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: 3
উদাহরণ ২: হেক্সাডেসিমেল রিপ্রেজেন্টেশন ব্যবহার (\x09)
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class NonPrintableExample2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ইনপুট টেক্সট লিখুন: ");
String input = sc.nextLine();
String regex = "\\x09"; // ট্যাবের হেক্স কোড 0x09
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: " + count);
}
}
আউটপুট উদাহরণ ২
ইনপুট টেক্সট লিখুন: sample data with tab spaces
দেয়া টেক্সটে ট্যাব স্পেস সংখ্যা: 4
অন্যান্য নন-প্রিন্টেবল ক্যারেক্টার ম্যাচিং
| ক্যারেক্টার | এস্কেপ | হেক্স | ব্যবহার |
|---|---|---|---|
| নিউলাইন | \n | \x0A | লাইন ব্রেক ডিটেক্ট |
| ক্যারেজ রিটার্ন | \r | \x0D | Windows লাইন এন্ডিং (\r\n) |
| ফর্ম ফিড | \f | \x0C | পেজ ব্রেক |
| নাল ক্যারেক্টার | \0 | \x00 | স্ট্রিং টার্মিনেটর |
সারসংক্ষেপ
নন-প্রিন্টেবল ক্যারেক্টার ম্যাচ করার দুটি পথ: এস্কেপ সিকোয়েন্স (`\t`, `\n`, `\r`) বা হেক্সাডেসিমেল (`\x09`, `\x0A`, `\x0D`)। উভয়ই সমতুল্য। হেক্স ফরম্যাট আরও স্পষ্ট এবং পোর্টেবল। টেক্সট প্রসেসিং, লগ পার্সিং, ফাইল ফরম্যাট ভ্যালিডেশনে এই প্যাটার্নগুলো খুব কাজে আসে।