1

文字列を比較するために、文字列でCollat​​orとcompareToメソッドを使用する方法について読んでいます。APIを読んだときの2つの本当の違いが何であるかわかりません。どちらがもう一方よりも優先されるのはいつですか?

APIコレーター

API文字列compareTo

4

2 に答える 2

6

基本的に、ロケール依存とは、使用されている言語を考慮に入れ、異なる文字間の比較に異なる重みを使用する可能性があることを意味します。

「たとえば、チェコ語では、「e」と「f」は一次差異と見なされ、「e」と「ě」は二次差異、「e」と「E」は三次差異、「e」と「e」は同一。" 1

compareToの辞書式比較では、これらの異なる重みを考慮に入れる代わりに、Unicode値を使用するだけです。

「文字列を1回だけ比較するには、compareメソッドが最高のパフォーマンスを提供します。ただし、文字列のリストを並べ替える場合は、通常、各文字列を複数回比較する必要があります。この場合、Collat​​ionKeysの方がパフォーマンスが向上します。Collat​​ionKeyクラスは文字列を次のように変換します。他のCollat​​ionKeysとビット単位で比較できる一連のビット。Collat​​ionKeyは、指定された文字列のCollat​​orオブジェクトによって作成されます。 " 1

1 Colator Javadoc

于 2012-01-16T21:55:36.013 に答える
2

私のコメントから昇格しました(半分は質問に答えます):

コレーターを使用する:海外に拠点を置く会社の連絡先マネージャーがいるとします。プレフィックスが一致するオートコンプリートがあるとします。コレーターを使用すると、米国の従業員は、アクセントを入力しなくても、名前のアクセント付き母音に一致するものを見つけることができます。

compareToを使用してください:私がちょうど与えたような状況を気にしないとき。

于 2012-01-16T23:53:36.100 に答える