$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
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
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(Btarget
- $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(BOutOfMemoryError
- $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
$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.