最近、JISコードの第一・二水準に入力された文字列が収まっているかが気になっている。今まで、JavaScriptで正規表現を使って探索していたわけだが、Javaに入れようとしたらPatternのコンパイルでスタックオーバーフローになってしまった。
やむなく、FORループで探索することにしたわけだが、完全にリニアで探索したので遅い。もう少し改良の余地がないかどうか考えたところ、文字列を数値のとみなして場合分けし、すべての文字コードを網羅し、Unicodeの数値の大小によってソートした文字列における探索の開始・終了位置を変えると早くなる感じであった。サロゲートペアも工夫して大丈夫になったので、何とか実用に耐えるような気がする。
ネットを探しても不思議なことに誰もJISの第一・二水準以外をはじこうとする人はいるのに、すべて網羅してソートして、文字コードによって開始位置と終了位置を変えるIF文を書いた人は見かけない。自分が第一号なのだろうか、それともやり方が誤っているのだろうか。まあ、なんにせよ出来るのだからよいということにしよう。日本・中国・台湾の行政におけるIT導入を遅らせた漢字の呪いが少し和らぐだけで大進歩だと思う。
やむなく、FORループで探索することにしたわけだが、完全にリニアで探索したので遅い。もう少し改良の余地がないかどうか考えたところ、文字列を数値のとみなして場合分けし、すべての文字コードを網羅し、Unicodeの数値の大小によってソートした文字列における探索の開始・終了位置を変えると早くなる感じであった。サロゲートペアも工夫して大丈夫になったので、何とか実用に耐えるような気がする。
ネットを探しても不思議なことに誰もJISの第一・二水準以外をはじこうとする人はいるのに、すべて網羅してソートして、文字コードによって開始位置と終了位置を変えるIF文を書いた人は見かけない。自分が第一号なのだろうか、それともやり方が誤っているのだろうか。まあ、なんにせよ出来るのだからよいということにしよう。日本・中国・台湾の行政におけるIT導入を遅らせた漢字の呪いが少し和らぐだけで大進歩だと思う。
※コメント投稿者のブログIDはブログ作成者のみに通知されます