[$,.]
- это регулярное выражение, которое является ожидаемым вводом для Java replaceAll()
метода. У Kotlin, однако, есть класс с именем Regex
, и string.replace()
перегружен, чтобы принимать аргумент String или Regex.
Так что вам нужно явно вызвать .toRegex()
, иначе он решит, что вы хотите заменить строковый литерал [$,.]
. Также стоит отметить, что $
в Kotlin используется с шаблонами String, что означает, что в обычных строках вы должны избегать его, используя обратную косую черту. Kotlin поддерживает необработанные строки (помеченные тремя "
вместо одной), которые не нужно экранировать, то есть вы можете сделать это:
str = str.replace("""[$,.]""".toRegex(), "")
Вы не обязательно должны использовать .toRegex()
. Вы также можете создать новый объект Regex:
str = str.replace(Regex("""[$,.]"""), "")