说我有以下字符串:
s := 'This , is, the Delphi , World!';
Run Code Online (Sandbox Code Playgroud)
我想要以下输出:
Result := 'This,is,the Delphi,World!';
Run Code Online (Sandbox Code Playgroud)
基本上我需要一个例程,只有当它们出现在逗号字符之前或之后(这是我的分隔符)时才会删除所有出现的空格,在其他字之间留下完整的空格.
任何帮助深表感谢.
您如何看待这个解决方案?
function RemoveSpacesAroundDelimiter(var aString: string; aDelimiter:
string): string;
begin
while AnsiContainsText(aString, aDelimiter + ' ') do
begin
aString := StringReplace(aString, ', ', aDelimiter, [rfReplaceAll, rfIgnoreCase]);
end;
while AnsiContainsText(aString, ' ' + aDelimiter) do
begin
aString := StringReplace(aString, ' ' + aDelimiter, aDelimiter, [rfReplaceAll, rfIgnoreCase]);
end;
Result := aString;
end;
Run Code Online (Sandbox Code Playgroud)
法比奥
听起来像TStringList的任务.
function UltraTrim(Value: string): string;
var
sl: TStringList;
i: Integer;
begin
sl := TStringList.Create;
try
// Prevent the stringlist from using spaces as delimiters too.
sl.StrictDelimiter := True;
// Set the comma separated text.
sl.CommaText := Value;
// Trim each item.
for i := 0 to sl.Count -1 do
sl[i] := Trim(sl[i]);
// Concat back to comma separated string.
Result := sl.CommaText;
finally
sl.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)