🔢
文字列を数字として認識させるNotionTips
どうもをやっております熊倉です
twitterを眺めていたら、こんな命題が目の前にやってきたので、実現する方法を探ってみたいと思います。
まず、twitterのスクショを雑に再現します
この状態って通常並び替えをする時に、文字列における並び替えをプログラム側はしてしまいます。
平たくいうと「巻」という文字は、数字よりもプログラム的には優先順位が低いのです。
そのため、10巻と1巻では、10と続く文字列が優位となり、上記のような並びになってしまいます。
では、この漫画のタイトルを以下に楽に意図通りに並び替えるか。という観点で最適解を導き出してみます。
↑ こちらが結果となります。
↓が数字を抜き出し、数字に変換するための関数です。
何をやっているのか、一発で理解できる方はプログラマです。
今回の対象者は、プログラマではないので、紐解いて解説をさせて頂きます。
まずこちら
- 関数とは?
- 第一引数()の入力に対して、第二引数()の条件に当てはまるものを、第三引数(→空文字)に置き換えます。という関数です。
- ここで多くの方々にとって、理解が出来ないのはという謎の暗号かと思います。
- この暗号はと言います
- 正規表現における とは、数字の0〜9以外に当てはまる文字全てという意味になります。
- これを第三引数の の意図を加えると、0〜9に当てはまるもの以外全てを排除する。という意味になります。
正規表現についてはこちらなど、ググったら色々と情報が出てきますので興味がありましたら調べてみて下さい
- 続いて、関数とは?
- 文字から数字としてプログラムに強制的に捉えさせる命令になります
- 従って、 で抜き出した、数字のみの文字列を確実に数字化させる。といった役割になります
上記の条件を満たすと、文字の並び替えではなく、数字の並び替えが実現できます。
あとは、というプロパティに対して並び替えをすれば良いだけです。
まとめ
ちょっとしたプログラムの知識を適応するだけで、やりたかった事が実現出来る一例となりました。
あ、こんな事出来たんだ!?という気づきに繋がれば幸いです。
また、うきさん、お題を頂き有難うございました。
それでは!