Internationalization (i18n) এর মধ্যে sorting একটি গুরুত্বপূর্ণ অংশ, কারণ বিভিন্ন ভাষা এবং সংস্কৃতি অনুযায়ী অক্ষরগুলোকে আলাদা ভাবে সাজানো হয়। Java এ, Collator ক্লাস ব্যবহার করে বিভিন্ন ভাষা ও অঞ্চলের জন্য অক্ষর সাজানো যায়। Case Sensitivity এবং Accent Sensitivity এর মতো ভিন্নতা এই সঞ্চালন প্রক্রিয়ায় গুরুত্বপূর্ণ ভূমিকা পালন করে।
Case Sensitivity:
- Case Sensitivity হল অক্ষরের বড় হাতের এবং ছোট হাতের সংস্করণের মধ্যে পার্থক্য।
- উদাহরণস্বরূপ, ইংরেজিতে 'A' এবং 'a' দুটি আলাদা অক্ষর। যখন আপনি কেস-সেন্সিটিভ সোর্টিং করবেন, তখন 'A' এবং 'a' আলাদা আলাদা সাজানো হবে।
Accent Sensitivity:
- Accent Sensitivity হল অক্ষরের উপর থাকা ডায়াক্রিটিক চিহ্নের (যেমন, é, è) মধ্যে পার্থক্য।
- উদাহরণস্বরূপ, ফরাসি ভাষায় "é" এবং "e" দুটি আলাদা অক্ষর হতে পারে, যখন আপনি accent-sensitive সোর্টিং ব্যবহার করবেন, তখন সেগুলি আলাদা সাজানো হবে।
Java-তে, Collator ক্লাসটি এই দুইটি গুরুত্বপূর্ণ দৃষ্টিকোণ থেকে সঠিকভাবে সোর্টিং করতে সাহায্য করে।
Collator ক্লাস
Collator হল java.text প্যাকেজের একটি ক্লাস যা আন্তর্জাতিককরণের জন্য অক্ষর সজ্জা এবং তুলনা করার জন্য ব্যবহৃত হয়। এটি locale-sensitive sorting সমর্থন করে, যা অর্থাৎ অক্ষরের সাজানো পদ্ধতি ভাষা এবং সংস্কৃতির উপর নির্ভর করে।
Collator ব্যবহার:
- Case Sensitivity এবং Accent Sensitivity সহ সঠিকভাবে সজ্জিত করা
- ব্যবহারকারীর Locale অনুসারে সঠিক সজ্জা নির্বাচন করা
Collator উদাহরণ:
এই উদাহরণে, আমরা দেখবো কীভাবে Collator ব্যবহার করে Case Sensitivity এবং Accent Sensitivity সহ সঠিকভাবে অক্ষর সজ্জিত করা যায়।
Example 1: Case Sensitive Sorting
import java.text.Collator;
import java.util.*;
public class CaseSensitiveSorting {
public static void main(String[] args) {
// Locale ব্যবহার করে Collator তৈরি করা
Collator collator = Collator.getInstance(Locale.US);
collator.setStrength(Collator.PRIMARY); // Case-sensitive sort
// একটি List তৈরি করা
List<String> words = new ArrayList<>();
words.add("banana");
words.add("Apple");
words.add("apple");
words.add("Banana");
// Sort the list using collator
Collections.sort(words, collator);
// প্রিন্ট করা সজ্জিত তালিকা
System.out.println("Sorted List (Case-Sensitive): " + words);
}
}
ব্যাখ্যা:
- Collator.getInstance(Locale.US): এই কোডটি US Locale অনুযায়ী একটি Collator তৈরি করছে, যা ইংরেজি ভাষার জন্য সঠিক সজ্জা করবে।
- collator.setStrength(Collator.PRIMARY): এটি case-sensitive সজ্জা সক্ষম করে, যা বড় হাতের অক্ষর এবং ছোট হাতের অক্ষরকে আলাদা করে।
আউটপুট:
Sorted List (Case-Sensitive): [Apple, Banana, apple, banana]
Example 2: Accent Sensitive Sorting
import java.text.Collator;
import java.util.*;
public class AccentSensitiveSorting {
public static void main(String[] args) {
// Locale ব্যবহার করে Collator তৈরি করা
Collator collator = Collator.getInstance(Locale.FRENCH);
collator.setStrength(Collator.TERTIARY); // Accent-sensitive sort
// একটি List তৈরি করা
List<String> words = new ArrayList<>();
words.add("éclair");
words.add("eclair");
words.add("éléphant");
words.add("elephant");
// Sort the list using collator
Collections.sort(words, collator);
// প্রিন্ট করা সজ্জিত তালিকা
System.out.println("Sorted List (Accent-Sensitive): " + words);
}
}
ব্যাখ্যা:
- Collator.getInstance(Locale.FRENCH): এখানে French Locale ব্যবহৃত হচ্ছে, যাতে ফরাসি ভাষার accent-sensitive সজ্জা করা যায়।
- collator.setStrength(Collator.TERTIARY): এটি accent-sensitive সজ্জা সক্ষম করে, যার ফলে é এবং e এর মধ্যে পার্থক্য হয়।
আউটপুট:
Sorted List (Accent-Sensitive): [eclair, éclair, elephant, éléphant]
Case Sensitivity এবং Accent Sensitivity এর মধ্যে পার্থক্য
- Case Sensitivity:
- এটি বড় হাতের এবং ছোট হাতের অক্ষরের মধ্যে পার্থক্য করে।
- উদাহরণস্বরূপ, "Apple" এবং "apple" দুটি আলাদা আলাদা শব্দ হতে পারে।
- Accent Sensitivity:
- এটি অক্ষরের উপর থাকা ডায়াক্রিটিক চিহ্নের (যেমন é, è) মধ্যে পার্থক্য করে।
- উদাহরণস্বরূপ, ফরাসি ভাষায় "éclair" এবং "eclair" দুটি আলাদা আলাদা শব্দ হতে পারে।
Collator ক্লাসের Strength Levels:
- Collator.PRIMARY:
- এটি কেবল মূল অক্ষরের তুলনা করে এবং case insensitive সজ্জা তৈরি করে।
- Collator.SECONDARY:
- এটি মূল অক্ষরের পাশাপাশি diacritics (accent) এর তুলনা করে। তবে এটি case insensitive।
- Collator.TERTIARY:
- এটি মূল অক্ষর, diacritics, এবং case sensitivity সবকিছুর তুলনা করে।
- Collator.IDENTICAL:
- এটি কেবল দুটি অক্ষর বা শব্দকে identical মনে করে এবং exact match চেক করে।
- Java Sorting তে Case Sensitivity এবং Accent Sensitivity গুরুত্বপূর্ণ কারণ এটি বিভিন্ন ভাষায় অক্ষরের সঠিক সাজানো নিশ্চিত করে।
- Collator ক্লাস ব্যবহার করে আপনি সহজেই এই ধরনের সঠিক সজ্জা অর্জন করতে পারেন, এবং এটি নির্দিষ্ট Locale এর জন্য সঠিকভাবে কাজ করে।
- Locale-sensitive সজ্জা ব্যবহার করে আপনি বিভিন্ন ভাষায় text sorting আরো নির্ভুলভাবে পরিচালনা করতে পারেন।
Read more