The String class doesn't have the ability to compare text from a natural language perspective.
Its equals and compareTo methods compare the individual char values in the string. If the char value at index n in name1 is the same as the char value at index n in name2 for all n in both strings, the equals method returns true.
The java.text.Collator class provides natural language comparisons. Natural language comparisons depend upon locale-specific rules that determine the equality and ordering of characters in a particular writing system.A Collator object understands that people expect "cat" to come before "Hat" in a dictionary. Using a collator comparison, the following code prints cat < Hat.
So this can be used for sorting of words based on locale, eg using Collections.sort() :
References:
Its equals and compareTo methods compare the individual char values in the string. If the char value at index n in name1 is the same as the char value at index n in name2 for all n in both strings, the equals method returns true.
The java.text.Collator class provides natural language comparisons. Natural language comparisons depend upon locale-specific rules that determine the equality and ordering of characters in a particular writing system.A Collator object understands that people expect "cat" to come before "Hat" in a dictionary. Using a collator comparison, the following code prints cat < Hat.
Collator collator = Collator.getInstance(new Locale("en", "US"));
//OR Collator.getInstance(Locale.US);
int comparison = collator.compare("cat", "Hat");
if (comparison < 0) {
System.out.printf("%s < %s\n", "cat", "Hat");
} else {
System.out.printf("%s < %s\n", "Hat", "cat" );
}
So this can be used for sorting of words based on locale, eg using Collections.sort() :
List<String> boyNames= new ArrayList<String>();
boyNames.add("Ankit");
boyNames.add("Himanshu");
boyNames.add("Rohit");
boyNames.add("Neerav");
boyNames.add("Gaurav");
//
// Define a collator for US English.
//
Collator collator = Collator.getInstance(Locale.US);
//
// Sort the list base on the collator
//
Collections.sort(boyNames, collator);
References:
No comments:
Post a Comment