作成日:2024年07月18日
文字列の置換処理


どうも、にゃん太です
文字列の置換処理はよく使う機能だと思いますが、複数処理を行う場合に順番を間違えると大変な事に!?
今回のメモでは、昔懐かしの暗号解読と共に、文字列置換について書いていきます
特定の文字を消す

小学生の頃に見た覚えのある懐かしのたぬき暗号です
こんな場合の様に、特定の文字を消したい場合は、substitute関数を使用します
計算式
Substitute ( 文字列; "た"; "" )
元の文字列
こたんやたえきたでまたってるたね
計算結果
こんやえきでまってるね
特定の文字を置き換える

先ほどのたぬき暗号では文字を消しましたが、その派生の文字を置き換える暗号なんかもあります
この例では、「て」を「み」に置き換えます
計算式
Substitute ( 文字列; "て"; "み" )
元の文字列
てなてのてずうて
計算結果
みなみのみずうみ
複数の置き換え

この例では、複数の文字の置き換えを行う必要があります
置換1:ひ→さ、 置換2:ひと→た
これを単純に書くと下記の通りになります
計算式
Substitute ( Substitute ( 文字列; "ひ"; "さ" ); "ひと"; "た" )
元の文字列
あしひとのあひ、ひいひとまへいく
計算結果
あしさとのあさ、さいさとまへいく
……何だか意味のある文字になりませんね
その理由は簡単で、さきに「ひ→さ」の処理を行ってしまったので、「ひと」が「さと」に置き換わってしまい、「ひと→た」の処理が実行されなくなってしまったのです
ですので、置換順番を変更します
計算式
Substitute ( Substitute ( 文字列; "ひと"; "た" ); "ひ"; "さ" )
元の文字列
あしひとのあひ、ひいひとまへいく
計算結果
あしたのあさ、さいたまへいく
無事、正しい結果となりました
この様に、置換順番を気にする必要がある場合もありますのでご注意ください
尚、この計算式は下記の様に記述する事も可能です
計算式
Substitute ( 文字列; ["ひと"; "た"]; ["ひ"; "さ"] )

以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください