При работе с пользовательским вводом или обработке данных в 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. Предпочитаете ли вы использовать обработку исключений, регулярные выражения или итерацию символов, вы можете выбрать метод, который лучше всего соответствует вашим потребностям и стилю кодирования. Не забывайте всегда проверять вводимые пользователем данные, чтобы гарантировать правильность и целостность данных вашего приложения.