Articles

辞書順

Posted on

お使いのブラウザは、HTML 5 Canvasをサポートしていません。 Chrome をお試しください。

アイテムを順番に並べるには、2つのアイテムを比較する方法が必要です。 文字列の場合、通常の順序はLexicographic Orderです。 これは、すべての大文字がすべての小文字よりも前にあることを除けば、辞書順です。 この順序は、クラス StringcompareTo() メソッドが使用するものです。

2つの文字列が同じ長さで、同じ位置に同じ文字が含まれていれば、辞書的に同じです。 この場合、stringA.compareTo( stringB )は0を返します。

そうでなければ、stringA.compareTo( stringB )StringAStringBが最初に来れば正の値を返します。

記憶補助:辞書の文字列を小さいものから大きいものに並べると考えてください。 そうすると、stringA - stringBstringAStringBより前に来た場合、負の値を生成することになります。

どちらの文字列が先かを判断するには、2つの文字列の対応する文字を左から右に向かって比較します。 2つの文字列が異なる最初の文字が、どちらの文字列が先かを決定します。 文字の比較には、Unicodeの文字セットを使用します。 すべての大文字が小文字の前に来ます。 大文字と小文字が同じ場合は、アルファベット順に比較されます。

2つの文字列が同じ位置に同じ文字を含んでいる場合、短い方の文字列が先になります。


td

関連性 stringA.compareTo( stringB )
stringA Less Than stringB Negative Integer
文字列A 等しい 文字列B ゼロ
文字列A 大きい より大きい 文字列B 正の整数


Expression Evaluates to Explanation
“Zebra”.compareTo(“ant”) Negative Integer 上位の’Z’が下位の’a’より前に来る
“Apple”.compareTo(“apple”) Negative Integer 上位の’A’が下位の’a’より前に来る
“apple”.compareTo(“orange”) 負の整数 ‘a’が’o’の前に来る
“maple”.compareTo(“morning”) 負の整数 ‘a’が’o’の前に来る
“apple”.compareTo(“apple”) ゼロ 同じ長さ、同じ位置に同じ文字
“orange”.compareTo(“apple”) 正の整数 ‘a’の後に’o’が来る
“applecart”.compareTo(“apple”) 正の整数 “apple “の後に長い文字列 “applecart “が来る
“albatross”.compareTo(“albany”) 正の整数 ‘t’が’n’の後に来る


これは少し紛らわしいですね。 stringA.compareTo( stringB )stringAstringBが正しい順序で並んでいるからです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です