変換テーブルを使って、文字列を置換する


あるデータファイルから別のデータファイルに値を転記したり、
あるデータソースから別のシステムにデータ入力をする際など、
半角全角の違いや、特定の文字列を削除したいなどといったニーズがあると思います。

その時に便利な文字列の置換方法として、今回は変換テーブルを用意して行う方法を紹介したいと思います。

例えば、「ﾆｲﾀｶﾔﾏﾉﾎﾞﾚ」を「ニイタカヤマノボレ」に変換したり、
「ｶ)ｴﾆｳｪｱｼｮｳｼﾞ」を「エニウェアショウジ」に変換したりなど。

## 早速やってみよう その1
まず、データテーブル変数を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/81f7209b-2a99-8ad0-63b8-fbf1156760ab.png)

このような感じで、変換前の文字列と変換後の文字列を記入していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/0392415d-262a-6aa3-59cd-42b5d075e4f8.png)

そして、以下のようなBotを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/b0c2b000-1fe1-ac40-6aa2-c24bbd4fa34f.png)

各アクションの設定は以下のような感じになります。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439303837302f33383630373966632d353930632d646332302d613233342d3033613763313135336466312e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/31b8a632-b7e0-ea4e-af07-ac176bc4dbfe.png)

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439303837302f35326534366662302d323838382d356562652d666438622d3034336533653166333237352e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/4811d9c0-ea43-f0bd-1d3d-a6d98194d6d1.png)

## 実行してみよう その1

半角の文字列を全角にできましたね！ と思いきや。
ﾎﾞがホﾞ（全角の「ホ」と半角の「ﾞ」の組み合わせ）になってしまいました。
濁点や半濁点が付く文字の存在を忘れていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/ecd39900-3d72-0c35-1d82-816074322134.png)

ということでちょっと修正してみます。

## 早速やってみよう その2
このような感じで、データテーブルの変数を編集します。
濁点のある文字が先に変換されるよう、テーブルの先頭に来るようにします。

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439303837302f66376432376463362d336633662d666532342d313565382d3762373333326532356163332e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/eb4fd0d9-06d1-3e87-1381-dd170a6c4fc4.png)


このような感じで濁点、半濁点を追加します。それから、促音「ｰ」や、「ｬｭｮｯ」などの拗音も。
濁音だと「ｳﾞ」も忘れやすいです。
![スクリーンショット 2022-04-06 13.23.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/beae333c-9c2c-6ce2-b57d-969bd9d44da6.png)


## 実行してみよう その2
無事に変換できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/e87c0836-2df8-4a06-0f22-abdb884f3085.png)

## オマケ
「ｶ)ｴﾆｳｪｱｼｮｳｼﾞ」みたいな例の場合で、ｶ)などの部分を取り除きたい場合、上記の変換テーブルの最初のほうにさらに、
ｶ) ﾕ) (ｶ (ﾕ (ｶ) (ﾕ)などを追加し、変換先の文字列を空欄にしておくと、行いたい処理が可能になります。

以下のような感じで編集。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439303837302f37666434316434302d356135332d633632392d326166612d6565333764336135366132392e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/06f77029-8a87-1a18-9196-7944f02c215e.png)

実行してみると・・・。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439303837302f61336566376333632d616535642d363966362d613331392d3462663732356464656137372e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/e9e34fc2-edac-c5ed-4c1c-9caf8d350f2a.png)

出来ました！


## 最後に
いかがでしたでしょうか。
なかなかの手間になってしまった感が否めないですが、色々と応用が効きますので、一度勉強がてらやってみるのも良いと思います。

そして、決してオチというわけではないのですが、実はBot Storeに上記の処理を一発で行えるものがありますので、
ぜひこちらの利用もご検討ください。

[Convert Japanese String Using ICU4J Package - Bot Store](https://botstore.automationanywhere.com/bot/string-japanese-icu4j)
![名称未設定 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/8b104f74-866b-4d49-e3a3-e1e82118dc7b.png)