以前「フォーマットされた文字列に動的な値を差し込む」で、固定文字列の一部に動的な値を埋め込む方法を紹介しました。

今回は、文字列の中で不要な文字を除去したい場合や、一部の文字を別の文字に置換したい場合の対応をしたいと思います。
文字列操作はどの言語を使っていても必ず使う場面がくるので覚えておきたいですね。
特定の文字を置換
まずは、特定の文字を置換したいと思います。
1 2 | val s: String = "リラックマは幸せを感じている!?" println(s.replace("リラックマ", "コリラックマ")) |
「リラックマ」を「コリラックマ」に置換してみました。
コリラックマは幸せを感じている!?
文字を置き換えるだけなら、String の replace() メソッドで解決です。
正規表現にマッチした文字を置換
次に「#」と「?」を「♪(♪マーク)」に置換してみます。
? じゃ疑問文だし、# に至ってはハッシュタグですからね。♪ でウキウキ度を表現してみましょう。
1 2 | val s: String = "リラックマは幸せ感じている#キイロイトリもだよ?" println(s.replace("[#?]".toRegex(), "♪")) |
# と ? の両方が置換されましたね。
リラックマは幸せ感じている♪キイロイトリもだよ♪
次に不要な文字を除去してみます。
特定の記号が扱えない時に除去しちゃおうってやつですね。
1 2 3 | val s: String = "リラックマ!#\$コリラックマ%&-キイロイトリ)=~\\こぐまちゃん`?:" println(s.replace("[!#$%&-|~\`?:]".toRegex(), "")) |
サンプルが強引すぎて申し訳ないですが・・・。
リラックマコリラックマキイロイトリこぐまちゃん
PHPの場合
PHP だと str_replace() で文字列の置換、正規表現を使うなら preg_replace() ですね。
str_replace() は引数に配列が指定できるので便利です。
1 2 3 4 | <?php $s = 'ABC'; echo str_replace(['A', 'C'], ['a', 'c'], $s); |
A と C を同時にそれぞれの対象の文字列に置換できます。
aBc
まとめ
Kotlin で扱う文字列の置換について紹介しました。
外部連携が絡むと、どうしても送り合う文字列に制約があったりします。
ルールが厳しかったり、古いシステムだったりする場合ですね。
吸収の仕方は他にもいろいろとありますが、まずは単独で文字列置換できる方法を知っておくと効率アップです。