Я ищу лучший, более чистый метод для удаления плохих слов из длинной строки.
У меня есть текстовый файл с сотнями плохих слов, и я перебираю каждое из них - используя его для созданияшаблон регулярных выражений и замена совпадений звездочками.
import scala.io.Source
def removeBadWords(comment: String): String = {
val bufferedBadWords = Source.fromFile("/Users/me/Desktop/badwords.txt")
val badWords = bufferedBadWords.getLines.toList
bufferedBadWords.close
var newComment = comment
for(badWord <- badWords) {
newComment = badWord.r.replaceAllIn(newComment, "*" * badWord.length)
}
newComment
}
val sentence = "These are just a couple of [bad word] sentences. I want to [bad word] replace certain words with [bad word] asterisks - if [bad word] possible."
println(removeBadWords(sentence))
// Result: These are just a couple of **** sentences. I want to ******* replace certain words with ******* asterisks - if ******* possible.
Есть ли более эффективный и более идиоматический способ сделать это?