Mega Code Archive

 
Categories / Java by API / Java Text
 

Collator FULL_DECOMPOSITION

/*  CANONICAL DECOMPOSITION: The strings are equal.  FULL DECOMPOSITION: The strings are equal. Comparing a + umlaut and precomposed a-umlaut  NO DECOMPOSITION: The strings are NOT equal.  CANONICAL DECOMPOSITION: The strings are equal.  FULL DECOMPOSITION: The strings are equal. */ import java.text.Collator; import java.util.Locale; public class Decomposition {   public void compare(Collator c, String a, String b) {     switch (c.getDecomposition()) {     case Collator.NO_DECOMPOSITION:       System.out.print(" NO DECOMPOSITION: ");       break;     case Collator.CANONICAL_DECOMPOSITION:       System.out.print(" CANONICAL DECOMPOSITION: ");       break;     case Collator.FULL_DECOMPOSITION:       System.out.print(" FULL DECOMPOSITION: ");       break;     default:       System.out.print(" UNKNOWN DECOMPOSITION: ");     }     if (c.equals(a, b))       System.out.println("The strings are equal.");     else       System.out.println("The strings are NOT equal.");   }   public Decomposition() {     String pairs[][] = new String[3][3];     pairs[0][0] = "Half-Width and full-width A";     pairs[0][1] = "A";     pairs[0][2] = "\uFF21"; // full-width A     pairs[1][0] = "A with Ring and Angstrom Sign";     pairs[1][1] = "\u00c5"; // A with ring     pairs[1][2] = "\u212b"; // Angstrom     pairs[2][0] = "a + umlaut and precomposed a-umlaut";     pairs[2][1] = "a\u0308";     pairs[2][2] = "\u00e4";     for (int i = 0; i < 3; i++) {       Collator collate = Collator.getInstance(Locale.US);       collate.setStrength(Collator.IDENTICAL);       System.out.println("Comparing " + pairs[i][0]);       collate.setDecomposition(Collator.NO_DECOMPOSITION);       compare(collate, pairs[i][1], pairs[i][2]);       collate.setDecomposition(Collator.CANONICAL_DECOMPOSITION);       compare(collate, pairs[i][1], pairs[i][2]);       collate.setDecomposition(Collator.FULL_DECOMPOSITION);       compare(collate, pairs[i][1], pairs[i][2]);       System.out.println("");     }   }   public static void main(String[] s) {     new Decomposition();   } }