JavaTM 2 Platform
Std. Ed. v1.3

java.text
$B%/%i%9(B RuleBasedCollator

java.lang.Object
  |
  +--java.text.Collator
        |
        +--java.text.RuleBasedCollator
$B$9$Y$F$N
Cloneable, Comparator

public class RuleBasedCollator
extends Collator

RuleBasedCollator $B%/%i%9$O(B Collator $B$N6q>]%5%V%/%i%9$G!"4JC1$JA`:n$G%G!<%?%I%j%V%s$N%F!<%V%k%3%l!<%?$r;HMQ2DG=$K$7$^$9!#$3$N%/%i%9$r;H$&$H!"%+%9%?%^%$%:$7$?%F!<%V%k%Y!<%9$N(B Collator $B$r:n@.$9$k$3$H$,$G$-$^$9!#(BRuleBasedCollator $B$O!"J8;z$r%=!<%H%-!<$K%^%C%W$7$^$9!#(B

$B8zN(2=$N$?$a$K!"(BRuleBasedCollator $B$K$O$N%5%V%/%i%9$,;HMQ$5$l$k(B)$B!#(B

  1. $B%U%i%s%98l$N(B 2 $B$B5-=R$N$J$$$9$Y$F$N(B Unicode $BJ8;z$O!">H9g=g=x$N:G8e$K$/$k(B

$B>H9g%F!<%V%k$O>H9g%k!<%k$N%j%9%H$+$i$J$j!"$=$l$>$N%k!<%k$O < $B=$>~;R(B > < $B4X78J8;z(B > < $B%F%-%9%H0z?t(B > < $B%j%;%C%HJ8;z(B > < $B%F%-%9%H0z?t(B > $B>H9g%k!<%k$N:n@.J}K!$r

  • $B%F%-%9%H0z?t(B: $B%F%-%9%H0z?t$O!"FC '&')$B!#$?$@$7!"0zMQId$G0O$^$l$F$$$J$$6uGrJ8;z$OL5;k$5$l$k$N$GCm0U$7$F$/$@$5$$!#$?$H$($P!"(Bb c $B$O(B bc $B$H$7$F=hM}$5$l$^$9!#(B
  • $B=$>~;R(B: $B$9$Y$F$N%"%/%;%s%H(B ($BBh(B 2 $BAj0c(B) $B$,5UJ}8~$G$"$k$3$H$r;XDj$9$k=$>~;R$,(B 1 $B$D$"$j$^$9!#(B

    '@' : $B%"%/%;%s%H$,%U%i%s%98l$N$h$&$K5UJ}8~$K%=!<%H$5$l$k$3$H$r<($7$^$9!#(B

  • $B4X78J8;z(B: $B4X78J8;z$K$O
  • '<' : $B$h$jBg$-$$!"J8;zAj0c$N>l9g(B ($BBh(B 1)
  • ';' : $B$h$jBg$-$$!"%"%/%;%s%HAj0c$N>l9g(B ($BBh(B 2)
  • ',' : $B$h$jBg$-$$!"%1!<%9(B ($BBgJ8;z>.J8;z(B) $BAj0c$N>l9g(B ($BBh(B 3)
  • '=' : $BEy$7$$(B
  • $B%j%;%C%HJ8;z(B: $B$*$b$KC;=L$H3HD%$N$?$a$K;HMQ$7$^$9$,!"%k!<%k%;%C%H$N=*$o$j$K=$@5$rDI2C$9$k$?$a$K$b;HMQ$G$-$k%j%;%C%H$,J8;z(B 1 $B$D$"$j$^$9!#(B

    '&' : $B

    $B$3$l$O

     a < b < c
     a < b & b < c
     a < c & a < b
     
    $B%F%-%9%H0z?t$N$9$08e$K
     a < b & a < c
     a < c & a < b
     
    $B%7!<%1%s%9$K$O!"%F%-%9%H0z?t$,$9$G$KB8:_$9$k$+!"$=$N%F%-%9%H0z?t$N:G=i$NItJ,J8;zNs$,B8:_$7$J$1$l$P$J$j$^$;$s(B ($B$?$H$($P!"(B"a < b & ae < e" $B$OM-8z!#%7!<%1%s%9$K$*$$$F(B "a" $B$O!"(B"ae" $B$,%j%;%C%H$5$l$k$h$jA0$K$"$k$?$a(B)$B!#$3$N8eMh$N%9%Z%$%s8l$N(B "ch" $B$OC10lJ8;z$KC;=L$5$l$?$+$N$h$&$K=hM}$5$l$^$9(B ("c < ch < d" $B$HI=8=$5$l$k(B)$B!#0lJ}!"=>Mh$N%I%$%D8l$N(B a $B%&%`%i%&%H$O!"(B2 $B$D$NJ8;z$K3HD%$5$l$?$+$N$h$&$K=hM}$5$l$^$9(B ("a,A < b,B ... & ae;a & AE,A" $B$HI=8=$5$l$k(B)$B!#(B[a $B$*$h$S(B A $B$O(B a $B%&%`%i%&%H$N%(%9%1!<%W%7!<%1%s%9$G$9!#(B]

    $BL5;k2DG=$JJ8;z(B

    $BL5;k2DG=$JJ8;z$N>l9g!":G=i$N%k!<%k$O!"4X78J8;z$G;O$^$i$J$1$l$P$J$j$^$;$s(B ($B>e$NNc$O$N8@8l$NNc$r8+$l$P!"$[$H$s$I$N%"%/%;%s%H$,L5;k$G$-$k$3$H$,$o$+$j$^$9!#(B

    $B@55,2=$H%"%/%;%s%H(B

    RuleBasedCollator $B$O<+F0E*$K$=$N%k!<%k%F!<%V%k$r=hM}$9$k$3$H$K$h$j!";vA09g@.:Q$_%P!<%8%g%s$H7k9gJ8;z%P!<%8%g%s$N%"%/%;%s%HIU$-J8;z$,$I$A$i$b4^$^$l$k$h$&$K$7$^$9!#Ds6!$5$l$F$$$k%k!<%kJ8;zNs$,%Y!<%9J8;z$HFHN)$7$?7k9g%"%/%;%s%HJ8;z$+$i$N$_9=@.$5$l$k>l9g!"%k!<%kJ8;zNs$NJ8;z$N$9$Y$F$NI8=`E*$JAH$_9g$o$;$K0lCW$9$k;vA09g@.:Q$_%"%/%;%s%HIU$-J8;z$,%F!<%V%k$KF~NO$5$l$^$9!#(B

    $B$3$l$G!"%3%l!<%?$,(B NO_DECOMPOSITION $B$K@_Dj$5$l$F$$$k$H$-$G$b!"(BRuleBasedCollator $B$r;H$C$F%"%/%;%s%HIU$-J8;zNs$rHf3S$G$-$^$9!#$?$@$7!"Cm0U$9$Y$-E@$,(B 2 $B$D$"$j$^$9!#(B1 $B$DL\$O!">H9gBP>]$NJ8;zNs$,I8=`E*$J=g=x$K$J$$7k9g%7!<%1%s%9$rJ];}$7$F$$$k>l9g!"%3%l!<%?$r(B CANONICAL_DECOMPOSITION $B$^$?$O(B FULL_DECOMPOSITION $B$K@_Dj$7$F7k9g%7!<%1%s%9$N%=!<%H$r2DG=$K$9$kI,MW$,$"$k$H$$$&$3$H$G$9!#$b$&(B 1 $B$D$O!"J8;zNs$,J,2r8_49$NJ8;z(B ($B40A4I}$dH>J,I}$J$I$N7A<0(B) $B$rJ];}$9$k>l9g!"%k!<%k%F!<%V%k$K$OI8=`E*$J%^%C%T%s%0$N$_$,4^$^$l$k$N$G(B FULL_DECOMPOSITION $B$r;H$&I,MW$,$"$k$H$$$&$3$H$G$9!#>\:Y$O!"(B$B!V(BThe Unicode Standard, Version 2.0$B!W(B$B$r;2>H$7$F$/$@$5$$!#(B

    $B%(%i!<(B

    $Bl9g$O!"%(%i!<$K$J$j$^$9!#(B

    • $B%F%-%9%H0z?t$K0zMQId$G0O$^$l$F$$$J$$6gFIJ8;z$,$"$k(B ($BNc(B: "a < b-c < d")
    • $B4X78J8;z$d%j%;%C%HJ8;z$N8e$K%F%-%9%H0z?t$,$J$$(B ($BNc(B: "a < , b")
    • $B%F%-%9%H0z?t(B ($B$^$?$O%F%-%9%H0z?t$N:G=i$NItJ,J8;zNs(B) $B$,%7!<%1%s%9$K$^$@$J$$$N$K%j%;%C%HJ8;z$,$"$k(B ($BNc(B: "a < b & e < f")
    $B$3$l$i$N%(%i!<$N$&$A$I$l$+$,$"$k$H!"(BRuleBasedCollator $B$,(B ParseException $B$r%9%m!<$7$^$9!#(B

    $BNc(B

    $B4JC1$JNc(B: "< a < b < c < d"

    $B%N%k%&%'!<8l(B: "< a,A< b,B< c,C< d,D< e,E< f,F< g,G< h,H<i,I< j,J < k,K< l,L< m,M< n,N< o,O< p,P< q,Q< r,R< s,S< t,T < u,U< v,V< w,W< x,X< y,Y< z,Z < å_=a?,Å=A? ;aa,AA< æ_,Æ< ø_,Ø"

    $BDL>o!"%k!<%k%Y!<%9$N(B Collator $B%*%V%8%'%/%H$r:n@.$9$k$K$O!"(BCollator $B$N%U%!%/%H%j%a%=%C%I(B getInstance $B$r;HMQ$7$^$9!#$7$+$7!"%K!<%:$K9g$o$;$?FCRuleBasedCollator $B$r9=C[$7$^$9!#$?$H$($P!"

     String Simple = "< a < b < c < d";
     RuleBasedCollator mySimple = new RuleBasedCollator(Simple);
     
    $B$^$?$O(B:
     String Norwegian = "< a,A< b,B< c,C< d,D< e,E< f,F< g,G< h,H< i,I< j,J" +
                     "< k,K< l,L< m,M< n,N< o,O< p,P< q,Q< r,R< s,S< t,T" +
                     "< u,U< v,V< w,W< x,X< y,Y< z,Z" +
                     "< ?=a?,Å=A?" +
                     ";aa,AA< _,Æ< _,Ø";
     RuleBasedCollator myNorwegian = new RuleBasedCollator(Norwegian);
     

    Collator $B$r7k9g$9$k$N$O!"J8;zNs$r7k9g$9$k$H$NF1$8$/$i$$4JC1$G$9!#Collator $B$r7k9g$9$kNc$G$9!#(B

     // Create an en_US Collator object
     RuleBasedCollator en_USCollator = (RuleBasedCollator)
         Collator.getInstance(new Locale("en", "US", ""));
     // Create a da_DK Collator object
     RuleBasedCollator da_DKCollator = (RuleBasedCollator)
         Collator.getInstance(new Locale("da", "DK", ""));
     // Combine the two
     // First, get the collation rules from en_USCollator
     String en_USRules = en_USCollator.getRules();
     // Second, get the collation rules from da_DKCollator
     String da_DKRules = da_DKCollator.getRules();
     RuleBasedCollator newCollator =
         new RuleBasedCollator(en_USRules + da_DKRules);
     // newCollator has the combined rules
     

    $B$b$&(B 1 $B$D$NNc$G$O!"4{B8$N%F!<%V%k$rJQ99$7$F?7$7$$(B Collator $B%*%V%8%'%/%H$r:n@.$7$^$9!#$?$H$($P!"(B"& C < ch, cH, Ch, CH" $B$r(B en_USCollator $B%*%V%8%'%/%H$KDI2C$7$F!"FH<+$N%F!<%V%k$r:n@.$7$^$9!#(B

     // Create a new Collator object with additional rules
     String addRules = "& C < ch, cH, Ch, CH";
     RuleBasedCollator myCollator =
         new RuleBasedCollator(en_USCollator + addRules);
     // myCollator contains the new rules
     

    $B

     // old rule
     String oldRules = "=?;?;?;?"    // main accents
                     + ";?;?;?;?"    // main accents
                     + ";?;?;?;?"    // main accents
                     + ";?;?;?;?"    // main accents
                     + ";?;?;?;?"    // main accents
                     + "< a , A ; ae, AE ; * , (IF(B"
                     + "< b , B < c, C < e, E & C < d, D";
     // change the order of accent characters
     String addOn = "& ? ; ? ; ?";
     RuleBasedCollator myCollator = new RuleBasedCollator(oldRules + addOn);
     

    $B:G8e$NNc$G$O!"?7$7$$Collator $B$G$O!"1Q8l$NJ8;z$rF|K\8l$NJ8;z$h$jA0$K%=!<%H$9$k$3$H$b!"8e$K%=!<%H$9$k$3$H$b$G$-$^$9!#(B

     // get en_US Collator rules
     RuleBasedCollator en_USCollator = (RuleBasedCollator)Collator.getInstance(Locale.US);
     // add a few Japanese character to sort before English characters
     // suppose the last character before the first base letter 'a' in
     // the English collation rule is ?
     String jaString = "& ? < ?, ? < ?, ?";
     RuleBasedCollator myJapaneseCollator = new
         RuleBasedCollator(en_USCollator.getRules() + jaString);
     

    $B4XO"9`L\(B:
    Collator, CollationElementIterator

    $B%/%i%9(B java.text.Collator $B$+$i7Q>5$7$?%U%#!<%k%I(B
    CANONICAL_DECOMPOSITION, FULL_DECOMPOSITION, IDENTICAL, NO_DECOMPOSITION, PRIMARY, SECONDARY, TERTIARY
     
    $B%3%s%9%H%i%/%?$N35MW(B
    RuleBasedCollator(String rules)
              RuleBasedCollator $B$N%3%s%9%H%i%/%?$G$9!#(B
     
    $B%a%=%C%I$N35MW(B
     Object clone()
              $BI8=`%*!<%P!<%i%$%I$G$9!#(B
     int compare(String source, String target)
              2 $B$D$N0[$J$kJ8;zNs$K3JG<$5$l$?J8;z%G!<%?$r!">H9g%k!<%k$K=>$C$FHf3S$7$^$9!#(B
     boolean equals(Object obj)
              2 $B$D$N>H9g%*%V%8%'%/%H$,Ey$7$$$+$I$&$+$rHf3S$7$^$9!#(B
     CollationElementIterator getCollationElementIterator(CharacterIterator source)
              $B;XDj$5$l$?(B String $B$N(B CollationElementIterator $B$rJV$7$^$9!#(B
     CollationElementIterator getCollationElementIterator(String source)
              $B;XDj$5$l$?(B String $B$N(B CollationElementIterator $B$rJV$7$^$9!#(B
     CollationKey getCollationKey(String source)
              $BJ8;zNs$r!"(BCollationKey.compareTo $B$GHf3S$G$-$k0lO"$NJ8;z$KJQ49$7$^$9!#(B
     String getRules()
              $B>H9g%*%V%8%'%/%H$KBP$9$k%F!<%V%k%Y!<%9%k!<%k$r
     int hashCode()
              $B%F!<%V%k%Y!<%9>H9g%*%V%8%'%/%H$N%O%C%7%e%3!<%I$r@8@.$7$^$9!#(B
     
    $B%/%i%9(B java.text.Collator $B$+$i7Q>5$7$?%a%=%C%I(B
    compare, equals, getAvailableLocales, getDecomposition, getInstance, getInstance, getStrength, setDecomposition, setStrength
     
    $B%/%i%9(B java.lang.Object $B$+$i7Q>5$7$?%a%=%C%I(B
    finalize, getClass, notify, notifyAll, toString, wait, wait, wait
     

    $B%3%s%9%H%i%/%?$N>\:Y(B

    RuleBasedCollator

    public RuleBasedCollator(String rules)
                      throws ParseException
    RuleBasedCollator $B$N%3%s%9%H%i%/%?$G$9!#%F!<%V%k%k!<%k$+$i>H9g%F!<%V%k$r9=C[$7$^$9!#>H9g%k!<%k9=J8$N>\:Y$O!"(BRuleBasedCollator $B%/%i%9$N@bL@$r;2>H$7$F$/$@$5$$!#(B
    $B%Q%i%a!<%?(B:
    rules - $B>H9g%F!<%V%k$r9=C[$9$k85$K$J$k>H9g%k!<%k(B
    $BNc30(B:
    ParseException - $B%k!<%k$N9=C[%W%m%;%9$,<:GT$9$k$H!"%U%)!<%^%C%HNc30$,%9%m!<$5$l$k!#$?$H$($P!"9=C[%k!<%k$N(B "a < ? < d" $B$O!V(B?$B!W$,0zMQId$G0O$^$l$F$$$J$$$N$G!"%3%s%9%H%i%/%?$K$h$j(B ParseException $B$,%9%m!<$5$l$k(B
    $B4XO"9`L\(B:
    Locale
    $B%a%=%C%I$N>\:Y(B

    getRules

    public String getRules()
    $B>H9g%*%V%8%'%/%H$KBP$9$k%F!<%V%k%Y!<%9%k!<%k$r
    $BLa$jCM(B:
    $B%F!<%V%k>H9g%*%V%8%'%/%H$,@8@.$5$l$k85$K$J$C$?>H9g%k!<%k(B

    getCollationElementIterator

    public CollationElementIterator getCollationElementIterator(String source)
    $B;XDj$5$l$?(B String $B$N(B CollationElementIterator $B$rJV$7$^$9!#(B
    $B4XO"9`L\(B:
    CollationElementIterator

    getCollationElementIterator

    public CollationElementIterator getCollationElementIterator(CharacterIterator source)
    $B;XDj$5$l$?(B String $B$N(B CollationElementIterator $B$rJV$7$^$9!#(B
    $B4XO"9`L\(B:
    CollationElementIterator

    compare

    public int compare(String source,
                       String target)
    2 $B$D$N0[$J$kJ8;zNs$K3JG<$5$l$?J8;z%G!<%?$r!">H9g%k!<%k$K=>$C$FHf3S$7$^$9!#$"$k8@8l$K$*$$$F!"$"$kJ8;zNs$,!"JL$NJ8;zNs$h$jBg$-$$$+!">.$5$$$+!"$^$?$OEy$7$$$+$rJV$7$^$9!#$3$l$O!"%5%V%/%i%9$G%*!<%P!<%i%$%I$9$k$3$H$,$G$-$^$9!#(B
    $B%*!<%P!<%i%$%I(B:
    $B%/%i%9(B Collator $BFb$N(B compare
    $B%/%i%9(B java.text.Collator $B$+$i%3%T!<$5$l$?%?%0(B:
    $B%Q%i%a!<%?(B:
    source - $B%=!<%9J8;zNs(B
    target - $B%?!<%2%C%HJ8;zNs(B
    $BLa$jCM(B:
    $B@0?tCM!#%=!<%9$,%?!<%2%C%H$h$j>.$5$1$l$P!"CM$O%<%m$h$j>.$5$$!#%=!<%9$,%?!<%2%C%H$KEy$7$1$l$P!"CM$O%<%m!#%=!<%9$,%?!<%2%C%H$h$jBg$-$1$l$P!"CM$O%<%m$h$jBg$-$$(B
    $B4XO"9`L\(B:
    CollationKey, Collator.getCollationKey(java.lang.String)

    getCollationKey

    public CollationKey getCollationKey(String source)
    $BJ8;zNs$r!"(BCollationKey.compareTo $B$GHf3S$G$-$k0lO"$NJ8;z$KJQ49$7$^$9!#$3$l$O!"(Bjava.text.Collator.getCollationKey $B$r%*!<%P!<%i%$%I$7$^$9!#$^$?!"%5%V%/%i%9$G%*!<%P!<%i%$%I$9$k$3$H$,$G$-$^$9!#(B
    $B%*!<%P!<%i%$%I(B:
    $B%/%i%9(B Collator $BFb$N(B getCollationKey
    $B%/%i%9(B java.text.Collator $B$+$i%3%T!<$5$l$?%?%0(B:
    $B%Q%i%a!<%?(B:
    source - $B>H9g%-!<$KJQ49$9$kJ8;zNs(B
    $BLa$jCM(B:
    Collator $B$N>H9g%k!<%k$K4p$E$/!";XDj$5$l$?(B String $B$KBP$9$k(B CollationKey$B!#%=!<%9(B String $B$,(B null $B$N>l9g$O(B null $B$N(B CollationKey $B$,JV$5$l$k(B
    $B4XO"9`L\(B:
    CollationKey, Collator.compare(java.lang.String, java.lang.String)

    clone

    public Object clone()
    $BI8=`%*!<%P!<%i%$%I$G$9!#%;%^%s%F%#%/%9$OJQ$o$j$^$;$s!#(B
    $B%*!<%P!<%i%$%I(B:
    $B%/%i%9(B Collator $BFb$N(B clone
    $B%/%i%9(B java.lang.Object $B$+$i%3%T!<$5$l$?%?%0(B:
    $BLa$jCM(B:
    $B$3$N%$%s%9%?%s%9$NJ#@=(B
    $BNc30(B:
    CloneNotSupportedException - $B%*%V%8%'%/%H$N%/%i%9$,(B Cloneable $B%$%s%?%U%'!<%9$r%5%]!<%H$7$F$$$J$$>l9g!#(Bclone $B%a%=%C%I$r%*!<%P!<%i%$%I$7$?%5%V%/%i%9$b!"%$%s%9%?%s%9$rJ#@=$G$-$J$$$3$H$r<($9$?$a$K$3$NNc30$r%9%m!<$9$k$3$H$,$"$k(B
    OutOfMemoryError - $B==J,$J%a%b%j$,$J$$>l9g(B
    $B4XO"9`L\(B:
    Cloneable

    equals

    public boolean equals(Object obj)
    2 $B$D$N>H9g%*%V%8%'%/%H$,Ey$7$$$+$I$&$+$rHf3S$7$^$9!#(B
    $B%*!<%P!<%i%$%I(B:
    $B%/%i%9(B Collator $BFb$N(B equals
    $B%Q%i%a!<%?(B:
    obj - $BHf3SBP>]$N%F!<%V%k%Y!<%9$N>H9g%*%V%8%'%/%H(B
    $BLa$jCM(B:
    $B8=:_$N%F!<%V%k%Y!<%9$N>H9g%*%V%8%'%/%H$,!"%F!<%V%k%Y!<%9$N>H9g%*%V%8%'%/%H(B obj $B$KEy$7$$>l9g$O(B true$B!"$=$&$G$J$$>l9g$O(B false

    hashCode

    public int hashCode()
    $B%F!<%V%k%Y!<%9>H9g%*%V%8%'%/%H$N%O%C%7%e%3!<%I$r@8@.$7$^$9!#(B
    $B%*!<%P!<%i%$%I(B:
    $B%/%i%9(B Collator $BFb$N(B hashCode
    $B%/%i%9(B java.lang.Object $B$+$i%3%T!<$5$l$?%?%0(B:
    $BLa$jCM(B:
    $B$3$N%*%V%8%'%/%H$N%O%C%7%e%3!<%ICM(B
    $B4XO"9`L\(B:
    Object.equals(java.lang.Object), Hashtable

    JavaTM 2 Platform
    Std. Ed. v1.3

    $B%P%0$d5!G=MW5a$NJs9p(B
    $B$5$i$K>\$7$$(B API $B%j%U%!%l%s%9$*$h$S3+H/ Java 2 SDK SE Developer Documentation $B$r;2>H$7$F$/$@$5$$!#$3$N%I%-%e%a%s%H$K$O!"35G0!"MQ8l$NDj5A!"2sHr:v!"(B $B]$K$7$?>\:Y$J2r@b$,7G:\$5$l$F$$$^$9!#(B

    Java$B!"(BJava 2D$B!"(BJDBC $B$O!"JF9q$*$h$S$=$NB>$N9q$K$*$1$kJF9q(B Sun Microsystems, Inc. $B$N>&I8$b$7$/$OEPO?>&I8$G$9!#(B
    Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
    Palo Alto, California, 94303, U.S.A. All Rights Reserved.