Kotlin:
Поиск и замена текста
Как это делается:
Kotlin упрощает манипуляции с текстом через свою стандартную библиотеку. Ниже показано, как использовать replace
для замены слов.
fun main() {
val originalText = "Kotlin — это весело, Kotlin — это прагматично!"
val newText = originalText.replace("прагматично", "круто")
println(newText) // Вывод: Kotlin — это весело, Kotlin — это круто!
}
Для регулярных выражений:
fun main() {
val regex = "Kotlin".toRegex()
val originalText = "Kotlin — это весело, Kotlin — это прагматично!"
val newText = regex.replace(originalText, "Java")
println(newText) // Вывод: Java — это весело, Java — это прагматично!
}
Углубляемся
Перезапись текста существует столько же, сколько и печать, но в программировании она получила распространение с появлением первых текстовых процессоров. Альтернативы? Конечно – функции поиска и замены в редакторах, командные инструменты вроде sed
. В Kotlin, в частности, в вашем распоряжении находятся методы регулярных выражений и обычные строковые методы.
replace
подходит для простого текста; Regex
предоставляет вам швейцарский нож для работы с шаблонами. Регулярные выражения мощные, но сложнее в использовании – они используют специальный синтаксис для сопоставления с образцом. Можно думать о регулярных выражениях как об игре “Найди Валдо”, но правила того, что Валдо носит, вы составляете сами.
Проблемы реализации? Помните, что строка в Kotlin (String
) неизменяема. Методы, изменяющие текст, возвращают новые строки; они не изменяют исходную.
Смотрите также
- Документация Kotlin по
replace
: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/replace.html - Регулярные выражения в Kotlin: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/-regex/
- Добрый старый
sed
: https://www.gnu.org/software/sed/manual/sed.html