1

我想从字符串值中删除空格。例如,sString := 'Hello my name is Bob应该成为sString := 'HellomynameisBob.

我尝试使用 while 循环:

iPos := pos(' ', sString);
while iPos > 0 do
Delete(sString,iPos,1);

但程序只是冻结。

4

3 回答 3

18

程序冻结,因为您从不增加iPos循环中的 。

最简单的解决方案是使用在SysUtils- StringReplace参考)中声明的 Delphi 函数,如下所示:

newStr := StringReplace(srcString, ' ', '', [rfReplaceAll]); //Remove spaces
于 2013-10-08T10:27:39.847 回答
4
iPos := pos(' ', sString);
while iPos > 0 do begin
  Delete(sString,iPos,1);
  iPos := pos(' ', sString);
end;
于 2013-10-08T10:31:39.070 回答
1

虽然@Kromster 是对的,但这远不是处理这个问题的正确方法。您应该在传递的地方使用 StringReplace 函数、sString要替换的字符、要替换的字符以及一些内置标志。所以你的代码应该是这样的:

sString := 'Hello my name is Bob;
newString := stringReplace(sString, ' ', '', [rfReplaceAll, rfIgnoreCase]);

newString现在应该返回'HellomynameisBob'

于 2021-06-14T20:25:03.447 回答