Ответ 1
Вы можете проверить/отладить исходный код, чтобы узнать, почему ничего не меняется:
Collator.getInstance(Locale.GERMANY);
Вызывает следующий код:
public static synchronized
Collator getInstance(Locale desiredLocale)
{
// Snipping some code here
String colString = "";
try {
ResourceBundle resource = LocaleData.getCollationData(desiredLocale);
colString = resource.getString("Rule");
} catch (MissingResourceException e) {
// Use default values
}
try
{
result = new RuleBasedCollator( CollationRules.DEFAULTRULES +
colString,
CANONICAL_DECOMPOSITION );
}
// Snipping some more code here
Здесь вы можете видеть, что определенные правила (colString
, которые пусты в вашем случае в любом случае) помещаются после значений по умолчанию (CollationRules.DEFAULTRULES
).
И поскольку вы обнаружили, что значения по умолчанию имеют первые значения:
// NUMERICS
+ "<0<1<2<3<4<5<6<7<8<9"
+ "<\u00bc<\u00bd<\u00be" // 1/4,1/2,3/4 fractions
// NON-IGNORABLES
+ "<a,A"
+ "<b,B"
+ "<c,C"
+ "<d,D"