Проверка того, содержит ли строка только цифры в Delphi: надежные методы и примеры кода

При работе с пользовательским вводом или обработке данных в Delphi крайне важно обеспечить достоверность вводимых данных. Одним из распространенных требований является проверка, содержит ли строка только числовые цифры. В этой статье блога мы рассмотрим несколько надежных методов выполнения этой задачи в Delphi. Мы предоставим примеры кода и объясним плюсы и минусы каждого подхода.

Метод 1: использование функций StrToInt или StrToIntDef
Функция StrToInt в Delphi преобразует строку в целое число. Если входная строка содержит нечисловые символы, возникает исключение EConvertError. Мы можем использовать это поведение, чтобы проверить, содержит ли строка только числа.

function IsStringNumeric(const AStr: string): Boolean;
var
  I: Integer;
begin
  try
    I := StrToInt(AStr);
    Result := True;
  except
    Result := False;
  end;
end;

Метод 2: использование регулярных выражений
Регулярные выражения предоставляют мощный и гибкий способ сопоставления шаблонов в строках. В Delphi имеется поддержка регулярных выражений через класс TRegEx в модуле System.RegularExpressions.

function IsStringNumeric(const AStr: string): Boolean;
var
  Regex: TRegEx;
begin
  Regex := TRegEx.Create('^\d+$');
  Result := Regex.IsMatch(AStr);
end;

Метод 3: перебор каждого символа.
Другой подход заключается в переборе каждого символа в строке и проверке, является ли он числовой цифрой, с помощью функции CharIsNumber.

function IsStringNumeric(const AStr: string): Boolean;
var
  I: Integer;
begin
  Result := True;
  for I := 1 to Length(AStr) do
  begin
    if not CharIsNumber(AStr[I]) then
    begin
      Result := False;
      Break;
    end;
  end;
end;

В этой статье мы рассмотрели три различных метода проверки того, содержит ли строка только числовые цифры в Delphi. Предпочитаете ли вы использовать обработку исключений, регулярные выражения или итерацию символов, вы можете выбрать метод, который лучше всего соответствует вашим потребностям и стилю кодирования. Не забывайте всегда проверять вводимые пользователем данные, чтобы гарантировать правильность и целостность данных вашего приложения.