Delphi 7
如何删除delphi字符串中的前导零?
示例:
00000004357816
function removeLeadingZeros(ValueStr: String): String
begin
result:=
end;
答案 0 :(得分:21)
正确删除'000'字符串中的前导零的代码:
function TrimLeadingZeros(const S: string): string;
var
I, L: Integer;
begin
L:= Length(S);
I:= 1;
while (I < L) and (S[I] = '0') do Inc(I);
Result:= Copy(S, I);
end;
答案 1 :(得分:11)
function removeLeadingZeros(const Value: string): string;
var
i: Integer;
begin
for i := 1 to Length(Value) do
if Value[i]<>'0' then
begin
Result := Copy(Value, i, MaxInt);
exit;
end;
Result := '';
end;
根据具体要求,您可能希望修剪空白。我没有在这里做过,因为在问题中没有提到它。
<强>更新强>
我修复了Serg在这个答案的原始版本中发现的错误。
答案 2 :(得分:11)
使用JEDI Code Library执行此操作:
uses JclStrings;
var
S: string;
begin
S := StrTrimCharLeft('00000004357816', '0');
end.
答案 3 :(得分:8)
可能不是最快的,但它是一个单行; - )
function RemoveLeadingZeros(const aValue: String): String;
begin
Result := IntToStr(StrToIntDef(aValue,0));
end;
当然,仅适用于整数范围内的数字。
答案 4 :(得分:0)
尝试一下:
function TFrmMain.removeLeadingZeros(const yyy: string): string;
var
xxx : string;
begin
xxx:=yyy;
while LeftStr(xxx,1) = '0' do
begin
Delete(xxx,1,1);
end;
Result:=xxx;
end;