##文字を置き換えたい
メッセージに含まれる不適切な単語を*で置き換える処理を考える際に作った関数です。
例)
置き換える単語の配列 = ["ハンバーグ","アメリカ合衆国"]
「今日のご飯はハンバーグだ」-->「今日のご飯は*****だ」
「アメリカ合衆国に留学したい。」--> 「*******に留学したい」
のように、指定した文字列を*に置き換える処理をします。
置き換えたい文字を要素にもつ配列を作れば利用することができます。
Swiftには指定した文字を置き換えるreplacingOccurrences
,指定した文字列を繰り返すString(repeating:, count:)
があるのでそれらを組み合わせていきます。
##ソースコード
import UIKit
let prohibittenWordArray = ["落とし前","ゲーセン"]
//不適切な文字を置き換える関数
func checkMessage(_ message: String) -> Void {
var message = message
for prohibittenWord in prohibittenWordArray {
if message.contains(prohibittenWord) {
message = message.replacingOccurrences(of: prohibittenWord, with: convertWord(prohibittenWord.count), options: .literal, range: nil)
}
}
print(message)
}
//禁止用語を文字数分の*に置き換える
func convertWord(_ wordCount: Int) -> String {
return String(repeating: "*", count: wordCount)
}
checkMessage("こんにちは")//こんにちは
checkMessage("ゲームセンターで落とし前をつける")//ゲームセンターで****をつける
checkMessage("ゲーセンで財布落とした")//****で財布落とした