Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何从字符串中删除空格?_String_Delphi - Fatal编程技术网

String 如何从字符串中删除空格?

String 如何从字符串中删除空格?,string,delphi,String,Delphi,我想从字符串值中删除空格。例如,sString:='你好,我的名字是Bob,应该变成sString:='HellomynameisBob 我尝试使用while循环: iPos := pos(' ', sString); while iPos > 0 do Delete(sString,iPos,1); 但是程序只是冻结了。程序冻结了,因为您从未在循环中增加ipo 最简单的解决方案是使用SysUtils-StringReplace中声明的Delphi函数,如下所示: 尽管@Kromster

我想从字符串值中删除空格。例如,sString:='你好,我的名字是Bob,应该变成sString:='HellomynameisBob

我尝试使用while循环:

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

但是程序只是冻结了。

程序冻结了,因为您从未在循环中增加ipo

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


尽管@Kromster是正确的,但这远不是解决这一问题的正确方法。 应该使用StringReplace函数传递sString、要替换的字符、要替换的字符以及一些内置标志。因此,您的代码应该如下所示:

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

newString现在应该返回“HellomynameisBob”。

对于很长的字符串,这将非常缓慢,因为它会从字符串的开头不断搜索。StringReplace将比这快得多。
iPos := pos(' ', sString);
while iPos > 0 do begin
  Delete(sString,iPos,1);
  iPos := pos(' ', sString);
end;
sString := 'Hello my name is Bob;
newString := stringReplace(sString, ' ', '', [rfReplaceAll, rfIgnoreCase]);