我想从字符串值中删除空格。例如,sString := 'Hello my name is Bob
应该成为sString := 'HellomynameisBob
.
我尝试使用 while 循环:
iPos := pos(' ', sString);
while iPos > 0 do
Delete(sString,iPos,1);
但程序只是冻结。
程序冻结,因为您从不增加iPos
循环中的 。
最简单的解决方案是使用在SysUtils
- StringReplace
(参考)中声明的 Delphi 函数,如下所示:
newStr := StringReplace(srcString, ' ', '', [rfReplaceAll]); //Remove spaces
iPos := pos(' ', sString);
while iPos > 0 do begin
Delete(sString,iPos,1);
iPos := pos(' ', sString);
end;
虽然@Kromster 是对的,但这远不是处理这个问题的正确方法。您应该在传递的地方使用 StringReplace 函数、sString
要替换的字符、要替换的字符以及一些内置标志。所以你的代码应该是这样的:
sString := 'Hello my name is Bob;
newString := stringReplace(sString, ' ', '', [rfReplaceAll, rfIgnoreCase]);
newString
现在应该返回'HellomynameisBob'
。