//TStringBuilder.Create 可以无参数
procedure TForm1.Button1Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('Embarcadero');
sb.Append(' CodeGear');
sb.Append(' Delphi');
sb.Append(' 2009');
ShowMessage(sb.ToString); {Embarcadero CodeGear Delphi 2009}
sb.Free;
end;
//TStringBuilder.Create 可用字符串初始化; 其他重载用处不大
procedure TForm1.Button2Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create('Delphi ');
sb.Append(2009);
ShowMessage(sb.ToString); {Delphi 2009}
sb.Free;
end;
//TStringBuilder.Append 可以添加几乎所有数据类型, 甚至是对象
procedure TForm1.Button1Click(Sender: TObject);
var
sb1,sb2: TStringBuilder;
ver: Cardinal;
begin
sb1 := TStringBuilder.Create;
sb2 := TStringBuilder.Create;
sb1.Append('Delphi ');
ver := 2009;
sb1.Append(ver);
ShowMessage(sb1.ToString); {Delphi 2009}
sb2.Append(sb1);
{换行}
sb2.AppendLine;
sb2.Append(Self);
ShowMessage(sb2.ToString); {Delphi 2009
TForm1}
sb1.Free;
sb2.Free;
end;
//TStringBuilder.Append 截取字符数组和字符串
procedure TForm1.Button2Click(Sender: TObject);
const
CharArr: array[0..6] of Char = ('A','B','C','D','E','F','G');
Str = 'ABCDEFG';
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append(CharArr, 2, 3);
ShowMessage(sb.ToString); {CDE}
{清空}
sb.Length := 0;
sb.Append(Str, 2, 3);
ShowMessage(sb.ToString); {CDE}
sb.Free;
end;
//TStringBuilder.Append 添加指定数目的字符
procedure TForm1.Button3Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('A', 10);
ShowMessage(sb.ToString); {AAAAAAAAAA}
sb.Free;
end;
//TStringBuilder.Append 试试其他数据类型
procedure TForm1.Button4Click(Sender: TObject);
var
sb: TStringBuilder;
b: Boolean;
r: Real;
begin
sb := TStringBuilder.Create;
b := True;
sb.Append(b);
sb.AppendLine;
b := not b;
sb.Append(b);
sb.AppendLine;
r := 100/3;
sb.Append(r);
ShowMessage(sb.ToString); {True
False
33.3333333333333}
sb.Free;
end;
//TStringBuilder.AppendFormat 的使用和 Format 函数是一样的
procedure TForm1.Button5Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.AppendFormat('%s %d', ['Delphi', 2009]);
ShowMessage(sb.ToString); {Delphi 2009}
sb.Free;
end;
//TStringBuilder.Replace 替换字符串
procedure TForm1.Button1Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('从 Delphi 2007 到 Delphi 2009');
sb.Replace('Delphi', 'CBuilder');
ShowMessage(sb.ToString); {从 CBuilder 2007 到 CBuilder 2009}
sb.Free;
end;
//TStringBuilder.Replace 替换字符
procedure TForm1.Button2Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('从 Delphi 2007 到 Delphi 2009');
sb.Replace('0', '9');
ShowMessage(sb.ToString); {从 Delphi 2997 到 Delphi 2999}
sb.Free;
end;
//TStringBuilder.Replace 在指定范围内替换字符
procedure TForm1.Button3Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('ABABABABABAB');
sb.Replace('A', '-', 4, 5);
ShowMessage(sb.ToString); {ABAB-B-B-BAB}
sb.Free;
end;
//TStringBuilder.Replace 在指定范围内替换字符串
procedure TForm1.Button4Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('ABC123ABC123ABC123');
sb.Replace('ABC', '-', 3, 12);
ShowMessage(sb.ToString); {ABC123-123-123}
sb.Free;
end;
//TStringBuilder 的插入与删除
procedure TForm1.Button1Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create;
sb.Append('CodeGear 2007');
sb.Insert(Length('CodeGear '), 'Delphi ');
ShowMessage(sb.ToString); {CodeGear Delphi 2007}
sb.Remove(Length('CodeGear Delphi'), Length(' 2007'));
ShowMessage(sb.ToString); {CodeGear Delphi}
sb.Insert(sb.Length, ' 2009');
ShowMessage(sb.ToString); {CodeGear Delphi 2009}
sb.Free;
end;
//TStringBuilder.CopyTo
procedure TForm1.Button1Click(Sender: TObject);
var
sb: TStringBuilder;
arr: TCharArray;
i: Integer;
begin
sb := TStringBuilder.Create;
sb.Append('123456789');
SetLength(arr, 9);
for i := Low(arr) to High(arr) do arr := '*';
sb.CopyTo(3, arr, 1, 5);
ShowMessage(PChar(arr)); {*45678***}
sb.Free;
end;
//TStringBuilder.Chars
procedure TForm1.Button2Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create('Delphi 2009');
ShowMessage(sb.Chars[0]); {D}
ShowMessage(sb.Chars[sb.Length - 1]); {9}
sb.Free;
end;
//TStringBuilder.ToString 可以带参数
procedure TForm1.Button1Click(Sender: TObject);
var
sb: TStringBuilder;
begin
sb := TStringBuilder.Create('123456789');
ShowMessage(sb.ToString); {123456789}
ShowMessage(sb.ToString(3, 4)); {4567}
sb.Free;
end;