Отсутствует метод replaceAll класса String в Java

У меня сейчас очень странная проблема: метод replaceAll отсутствует в объекте String.

Версия JDK: 1.8.0
Версия Android Studio: 3.1.3
Версия Kotlin: 1.2

Отсутствует метод replaceAll класса String в Java

Он не был удален, так что здесь происходит ??

Java или JavaScript?

Halayem Anis 20.06.2018 12:29

@HalayemAnis Java

daka 20.06.2018 12:29

@HalayemAnis, это Котлин. Kotlin - это язык JVM, что означает, что он использует API Java (причина, по которой он помечен как Java)

Zoe 20.06.2018 12:29

@daka Это kotlin String, а не java String. Kotlin имеет только replace

Federico klez Culloca 20.06.2018 12:30

Функция Kotlin replace может принимать аргумент Regex. Не требует replaceAll.

khelwood 20.06.2018 12:31
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
33
5
18 097
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете сделать это с помощью replace в Котлине:

"foo and foo".replace("foo", "bar") // "bar and bar"

Обратите внимание, что приведенный выше вызов заменяет буквальные строки, если вам нужен Regex в качестве первого параметра, вы можете выполнить одно из следующих действий:

"foo and bar".replace("[abcd]".toRegex(), "x") // "foo xnx xxr"
"foo and bar".replace(Regex("[abcd]"), "x")    // "foo xnx xxr"

Что мне делать, если я заменяю на $1, как здесь? stackoverflow.com/a/40487511/2111778

xjcl 24.11.2020 00:30

В Kotlin есть replaceAll как replace:

заменить в Котлине

actual fun String.replace(
oldChar: Char, 
newChar: Char, 
ignoreCase: Boolean = false
): String (source)

Возвращает новую строку, в которой все вхождения oldChar заменены на newChar.

У Kotlin есть собственный класс String. Все методы замены - это просто replace.

replaceAll в Java использует регулярное выражение, поэтому я предполагаю, что ваша цель - использовать регулярное выражение. Для этого просто используйте объект регулярного выражения при переходе для замены:

sb.toString().replace("your regex".toRegex(), "replacement");

Если у вас нет регулярного выражения (а это неправильно), не вызывайте .toRegex():

sb.toString().replace("replace target", "replacement");

Другие вопросы по теме