РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
178 of 723 menu

Метод replaceAllMapped

Метод replaceAllMapped класса String ищет в строке все совпадения с заданным шаблоном и заменяет каждое из них на результат, возвращаемый переданной функцией-обработчиком. В первый параметр мы передаем шаблон (строку или регулярное выражение RegExp), который нужно найти. Во второй параметр мы передаем функцию, которая принимает объект совпадения Match и возвращает строку для замены. Метод возвращает новую строку, а исходная строка остается неизменной.

Главное отличие от метода replaceAll заключается в том, что здесь замена вычисляется динамически для каждого совпадения, а не является фиксированной строкой.

Синтаксис

str.replaceAllMapped(pattern, callback)

Пример

Давайте заменим все цифры в строке на их квадраты, используя функцию-обработчик:

void main() { String str = 'a1b2c3'; String res = str.replaceAllMapped(RegExp(r'\d'), (Match match) { int num = int.parse(match.group(0)!); return (num * num).toString(); }); print(res); }

Результат выполнения кода:

"a1b4c9"

Пример

Давайте обернем каждое слово в квадратные скобки, используя регулярное выражение для поиска слов:

void main() { String str = 'abcde fghij'; String res = str.replaceAllMapped(RegExp(r'\w+'), (Match match) { return '[' + match.group(0)! + ']'; }); print(res); }

Результат выполнения кода:

"[abcde] [fghij]"

Пример

Давайте заменим все вхождения подстроки 'ab' на ее порядковый номер в строке:

void main() { String str = 'ab ab ab'; int count = 0; String res = str.replaceAllMapped('ab', (Match match) { count++; return count.toString(); }); print(res); }

Результат выполнения кода:

"1 2 3"

Смотрите также

  • метод replaceAll,
    который заменяет все вхождения подстроки
  • метод replaceFirst,
    который заменяет первое вхождение подстроки
  • метод replaceFirstMapped,
    который заменяет первое вхождение с помощью функции
  • метод split,
    который разбивает строку на список подстрок
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить