前回のメモの続きとなる、文字列の間の空白を覗くアルゴリズム。
たとえば” あいう えお “ , “ あいう えお ” , “あいう えお “ は見た目は区別がつきにくいが全角、半角の空白をそれぞれ@@を用いると”@あいう@えお” , “@あいう@@えお” , “あいう@@えお@” となる。
では、”あいう” と”えお”を取り出すにはどうすればいいか、というほとんどの人にとって役に立たない、まさにこのメモにふさわしい内容の問題だ。
だが間の空白は取れないプログラミング言語を使っているものとしては、いろいろ困るのだ。
とはいえこの言語はありがたいことに、文字列の部分を取り出すことができる、文字列の前後の空白を取ることはできる、文字列の置換はできる、さらには全角、半角の変換ができる。
それなら間の空白も取る仕様もあればいいのに、と思うのだがきっと凡人には理解できない深淵な問題が横たわっているのだろう。
ということで前後の空白を取り、すべてを半角にし、半角の空白を@に置き換え、いくつあるか分からないがとにかく@の前後を取り出せばうまくいく。
そもそも空白である@と@は誤入力なわけだが、問題はいくつ間違っているか分からないという点にあった。やり方はいろいろあるだろうが、最悪の方法はありえそうな@と@の組み合わせを想定する方法だ。
実はなんとなくそれに近い方法で何十年もやっていて、今回似たようなほかのコードを書かなければいけないときに、はたと気づいた次第。