在Delphi中是否存在类似于Java或C#的StringBuilder?或者Delphi不需要StringBuilder,而s := s + 'some string';是很好的表达方式(主要是在for,while循环中)。
发布于 2009-03-26 16:09:14
是的,Delphi提供了TStringBuilder (从2009版本开始):
procedure TestStringBuilder;
var
I: Integer;
StringBuilder: TStringBuilder;
begin
StringBuilder := TStringBuilder.Create;
try
for I := 1 to 10 do
begin
StringBuilder.Append('a string ');
StringBuilder.Append(66); //add an integer
StringBuilder.Append(sLineBreak); //add new line
end;
OutputWriteLine('Final string builder length: ' +
IntToStr(StringBuilder.Length));
finally
StringBuilder.Free;
end;
end;是的,你是对的。与使用TStringBuilder相比,s := s + 'text';并不是很慢。
发布于 2009-03-26 16:30:40
在较老的Delphis中,你可以使用Hallvard Vassbotn的HVStringBuilder。我在他的博客上找不到源代码,但你可以在OmniThreadLibrary源代码树中获取它们,例如(你需要文件HVStringBuilder.pas和HVStringData.pas)。
发布于 2009-03-30 16:30:58
Delphi没有"REQUIRE“一个字符串生成器类,但如果你想使用它,它是为Delphi2009提供的。你的s字符串s+‘:=’的例子;是连接字符串的典型方法,在过去的几十年里一直在Pascal/Delphi中使用,没有任何明显的问题。
https://stackoverflow.com/questions/686413
复制相似问题