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

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

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

У меня есть программа, которая меняет цифру на следующую по порядку ( 9 меняет на 0 ) Подскажите, как удалить все последовательности идущих подряд цифр, образующие числа большие 315. Допустим: 15gd300v2743g--->26gd300vg
Листинг программы
  1. Var Str: String;
  2. i: Integer;
  3. ch: Byte;
  4. Begin
  5. Write('Введите исходную строку: ');
  6. ReadLn(Str);
  7. for i := 1 to Length(Str) do
  8. if Str[i] in ['0'..'9'] { Проверяем каждый символ: это цифра? }
  9. then begin
  10. { Из кода символа вычитаем код '0', прибавляем единицу
  11. и вычисляем остаток от деления на 10 }
  12. ch := (Ord(Str[i]) - Ord('0') + 1) mod 10;
  13. { Возвращаем результат в символьный тип. Для этого прибавляем
  14. код нуля, чтобы цифры отображались корректно. }
  15. Str[i] := Chr(ch + Ord('0'));
  16. end;
  17. WriteLn('Обработанная строка: ', Str);
  18. ReadLn;
  19. End.

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы