gpt4 book ai didi

delphi - 检查字符是否包含在字符数组中的最佳方法

转载 作者:行者123 更新时间:2023-12-03 15:23:18 24 4
gpt4 key购买 nike

我知道,我可以写

if C in ['#', ';'] then ...

如果 CAnsiChar

但是这个

function CheckValid(C: Char; const Invalid: array of Char; OtherParams: TMyParams): Boolean;
begin
Result := C in Invalid; // <-- Error because Invalid is an array not a set
//maybe other tests...
//Result := Result and OtherTestsOn(OtherParams);
end;

产生E2015:运算符不适用于此操作数类型

是否有一种简单的方法来检查字符是否包含在字符数组中(除了遍历数组之外)?

最佳答案

我知道您不想这样做,但出于性能原因,在这种情况下迭代数组确实是您的最佳选择:

function CheckValid(C: Char; const Invalid: array of Char): Boolean;
var
I: Integer;
begin
Result := False;
for I := Low(Invalid) to High(Invalid) do begin
if Invalid[I] = C then begin
Result = True;
Exit;
end;
end;
end;

或者:

function CheckValid(C: Char; const Invalid: array of Char): Boolean;
var
Ch: Char;
begin
Result := False;
for Ch in Invalid do begin
if Ch = C then begin
Result = True;
Exit;
end;
end;
end;

将输入数据转换为字符串只是为了搜索它可能会导致巨大的性能瓶颈,特别是如果经常调用该函数(例如在循环中)。

关于delphi - 检查字符是否包含在字符数组中的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com