Не распознаётся текст с пробелом
Делаю приложение на Kotlin под Android и столкнулась с проблемой. Суть приложения - сканировать текст и находить вредные "Е"шки в отсканированном тексте. Когда я сканирую текст в виде: "Е123", то никаких проблем не возникает совсем. Но, если в тексте имеется пробел:"Е 123", то никаким образом не получается увидеть эту "ешку" как вредную и вывести ее на экран списком с остальными найденными вредными веществами.
Функция:
private fun processImage() {
if(imageBitmap!=null){
val image = imageBitmap?.let {
InputImage.fromBitmap(it, 0)
}
image?.let { image ->
recognizer.process(image)
.addOnSuccessListener { result ->
if (result.text.isBlank()) {
binding.textView.text = "Текст не найден."
} else {
val recognizedWords = result.text.split("\\s+".toRegex()).map { word -> word.replace(",", "") }
val dangerWords = listOf("E121", "E 121", "E123", " E 123", " E 123 ", "E 123 ","E 123", "E128", "E 128", "E216", "E 216", "E217", "E 217", "E240", "E 240", "E294a", "E 294a", "E294 a", "E 294 a", "E294b", "E 294b", "E294 b", "E 294 b", "Hydroxyzine")
val foundDangerWords = recognizedWords.filter { word -> dangerWords.any { dangerWord -> word.trim().replace(" ", "").equals(dangerWord.replace(" ", ""), ignoreCase = true) } }
if (foundDangerWords.isNotEmpty()) {
binding.textView.text = "Найдены запрещенные вещества: \n" + foundDangerWords.joinToString("\n")
} else {
binding.textView.text = "Не найдены запрещенные вещества."
}
}
}
}
}
else{
Toast.makeText(this, "Please, select image first", Toast.LENGTH_SHORT).show()
}
}
Текст без пробелов нормально сканирует и выводит вредное:
Но если есть пробелы:
Подскажите, пожалуйста, возможно ли вообще с этим что либо сделать? Уже совсем нет сил, ничего не понимаю