Удалить из строки все последовательности идущих подряд цифр, образующие числа большие 315 - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

У меня есть программа, которая меняет цифру на следующую по порядку ( 9 меняет на 0 ) Подскажите, как удалить все последовательности идущих подряд цифр, образующие числа большие 315. Допустим: 15gd300v2743g--->26gd300vg

Решение задачи: «Удалить из строки все последовательности идущих подряд цифр, образующие числа большие 315»

textual
Листинг программы
function f(m : Match) : string;
begin
  result := StrToInt(m.Value) > 315 ? '' : 
    new string(m.Value.ToCharArray().Select(ch -> ch in ['0' .. '8'] ? Succ(ch) : '0').ToArray())
end;
 
begin
  var s : string := '19gd300v2743g';
  writeln(Regex.Replace(s, '(\d+)', f)); 
end.

Объяснение кода листинга программы

  1. Объявлена функция f с типом возвращаемого значения string.
  2. В функции используется анонимная функция-предикат для проверки условия StrToInt(m.Value) > 315.
  3. Результатом функции f является пустая строка '', если условие истинно, иначе — новая строка, полученная с помощью функции new string(...).
  4. В основной части кода определена переменная s со значением '19gd300v2743g'.
  5. В строку s вставляется результат вызова функции Regex.Replace, в качестве первого аргумента которой используется строка '(\d+)', а вторым аргументом — функция f.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы