「2 つの文字列を辞書式に比較する」とはどういう意味ですか?
8 に答える
@Bozhoと@aioobeからの回答に基づいて、辞書式の比較は、辞書で見つかる可能性のある順序に似ています。
Java Stringクラスは、文字列.compareTo ()
を辞書式に比較するためのメソッドを提供します。このように使用され"apple".compareTo ("banana")
ます。
このメソッドの戻り値は、int
次のように解釈できます。
- <0を返す場合、メソッドを呼び出す文字列は辞書式順序で最初になります(辞書で最初になります)
- == 0を返す場合、2つの文字列は辞書式に同等です
- > 0を返す場合、メソッドに渡されるパラメーター
compareTo
は辞書式順序で最初になります。
より具体的には、このメソッドは、ASCII値の最初のゼロ以外の差を提供します。
したがって、 (20)"computer".compareTo ("comparison")
の値を返します。(int) 'u' - (int) 'a'
これは肯定的な結果であるため、パラメーター("comparison"
)が辞書式順序で最初になります。
たとえば、.compareToIgnoreCase ()
戻るバリアントもあります。0
"a".compareToIgnoreCase ("A");
「比較」という表現はやや誤解を招きます。厳密に等しいかどうかを比較するのではなく、辞書 (レキシコン) で最初に来る文字列を比較します。
これは、文字列のコレクションをソート可能にする機能です。
これはアクティブなロケールに大きく依存することに注意してください。たとえば、ここデンマークでは、以前は「aa」と綴られていた文字「å」があり、 2 つの単一の a とは非常に異なります (編集: 「å」と発音する場合!)。したがって、デンマークの並べ替え規則では、2 つの連続する a を「å」と同じように扱います。つまり、z の後に続くことを意味します。これは、デンマーク語の辞書が英語やスウェーデン語の辞書とは異なる方法で並べ替えられていることも意味します。
このString.compareTo(..)
メソッドは、辞書式比較を実行します。辞書式順序==アルファベット順。
互いに同じ位置にある文字を順番に比較する..辞書で単語を並べ替える方法のように
どの文字列がレキシコンで最初に来るかを確認すると、文字列の辞書編集的な比較が行われます!
いくつかのリンク:
後者のリンクから盗んだもの:
次の場合、文字列 s は文字列 t の辞書順で先行します。
- sはtのプレフィックス、または
- cとdがそれぞれ s と t の最初の文字であり、sとtが異なる場合、cは文字順序でdよりも前になります。
注: アルファベットである文字の場合、文字の順序はアルファベット順に一致します。数字は文字に先行し、大文字は小文字に先行します。
例:
- 家は家庭に先立つ
- 家庭は家に先行する
- 作曲家はコンピュータに先行する
- H2O は HOTEL に先立つ