Delphi - TStringBuilder类
//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[i] := '*'; 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;
原文:
https://www.cnblogs.com/sures/p/6044917.html
参考: