德尔福7
如何删除delphi字符串中的前导零?
例:
00000004357816
function removeLeadingZeros(ValueStr: String): String
begin
result:=
end;
Run Code Online (Sandbox Code Playgroud)
klu*_*udg 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;
Run Code Online (Sandbox Code Playgroud)
Dav*_*nan 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;
Run Code Online (Sandbox Code Playgroud)
根据具体要求,您可能希望修剪空白.我没有在这里做过,因为在问题中没有提到.
更新
我修复了Serg在这个答案的原始版本中发现的错误.
Cló*_*ior 11
使用JEDI代码库执行此操作:
uses JclStrings;
var
S: string;
begin
S := StrTrimCharLeft('00000004357816', '0');
end.
Run Code Online (Sandbox Code Playgroud)
可能不是最快的,但它是一个单线;-)
function RemoveLeadingZeros(const aValue: String): String;
begin
Result := IntToStr(StrToIntDef(aValue,0));
end;
Run Code Online (Sandbox Code Playgroud)
当然,仅适用于整数范围内的数字.
小智 5
在 2021 年搜索这个问题时,我现在发现了一个更好的解决方案,那就是使用 TStringHelper 函数 TrimLeft,如下所示
myString := myString.TrimLeft(['0']);
Run Code Online (Sandbox Code Playgroud)
有关文档的更多信息,请参阅此处http://docwiki.embarcadero.com/Libraries/Sydney/en/System.SysUtils.TStringHelper.TrimLeft
| 归档时间: |
|
| 查看次数: |
7900 次 |
| 最近记录: |