自然順(しぜんじゅん、)とは、文字列の照合規則の一つであり、辞書式順序を基本としつつも複数桁の数字をまとめて1つの数値として扱う。自然な並び換え順序のこと。
一般に計算機による文字列の並び換えは辞書式順序が主であるが、自然順による並びは人間にとってより直感的であり、とくに末端利用者向けのUIとして推奨されている。
例 例として、文字列“foo11”と“foo2”の照合について考える。
辞書順 先頭から比較する。“foo”は共通。次に“1”と“2”を比較する。“1”は“2”よりも辞書的に前にあるので、“foo11”は“foo2”より小さいと看做される。 foo11 foo2
自然順 “foo”の照合までは辞書順と同じである。次に比較されるのは数値としての“11”および“2”である。“11”は“2”よりも数値的に後にあるので、“foo11”は“foo2”より大きいと看做される。 foo2 foo11
自然順の並び換えを提供する主な言語・ライブラリ プログラミング言語には、自然順による並び換え機能が組み込まれているものもある。また、組み込みで存在していなくとも、多くの場合は自然順による並び換え機能を提供するライブラリが存在する。
以下に、プログラミング言語において文字列を自然順に並び換えている例を複数、挙げる。なお標準(または規格)として自然順照合が提供されているものにかんしては、言語・ライブラリ名の先頭に赤星()を附加した。
Win32 API Windows XPおよびWindows Server 2003以降のWin32 APIでは関数が利用できる。
Perl(モジュール) Perl 5ではモジュールが提供する関数を用いて配列の各要素を自然順に照合できる。
PHP PHP 4、PHP 5、PHP 7では関数を用いて配列の各要素を自然順に照合できる。
Python(パッケージ) Python 2、Python 3ではnatsortパッケージを利用して自然順の照合ができる。
脚注
出典
参考文献
実装
関連項目 対人可読媒体
外部リンク Online Alphabetizer Tool - オンラインで種々の照合規則を実行できるWebサービス。「Sort Natural」ボタンが自然順、「Sort Alphabetically」ボタンが(自然順が数字以外の照合の際に基本とする)アルファベット順の並び換え。