ot2sy39's note

twitter 140文字じゃ書けないときの外部エントリみたいな

ソートの注意メモ

テキストをソートするとき、漢数字などが直感に反するというのはある程度意識にあるが、 実は超基本的な半角アスキー文字群の順番もかなり変なことになっていて時々罠にはまるので、 備忘のためメモ。

一般的にどうかは分からないが、自分はゆるふわに「記号→数字→英大文字→英小文字」の順になっているような気がしている。 しかし、実際にはアスキーコード部分(0x01~0x7F)の並びは以下の様になっている。

16進コード 種別 文字
01 - 1F 制御コード
20 スペース
21 - 2F 記号群1 ! " # $ % & ' ( ) * + , - . /
30 - 39 数字 0 1 2 3 4 5 6 7 8 9
3A - 40 記号群2 : ; < = > ? @
41 - 5A 英大文字 A - Z
5B - 60 記号群3 [ \ ] ^ _ `
61 - 7A 英小文字 a - z
7B - 7E 記号群4 { | } ~

注意しなければならないのは、こんな部分。

  • @;などは数字よりも後
  • 英大文字と英小文字は連続しておらず、間に記号がいくつか入る
  • _は英大文字より後だが英小文字よりは前!
  • カッコが支離滅裂で、()→ 数字 →<>→ 英大文字 →[]→ 英小文字 → {}

特に@_が罠過ぎると思う。