delphi string.split 按照任意字符串分割语句

delphi string.split 按照任意字符串分割语句

 

1、就是把一个指定的字符串用指定的分割符号分割成多个子串,放入一个 TStringList 中
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar;
 Strings: TStrings): Integer;
比如要把 'abc,defg,hijkl'; 按照逗号','分割开:
var
 Res: TStringList;
 Count: Integer;
begin
 s := 'abc,defg,hijkl';
 Res := TStringList.Create;
 Count := ExtractStrings([','], [], PChar(s), Res);
 ShowMessage('共分割出 ' + IntToStr(Count) + ' 个子串');
 ShowMessage(Res.Text);
 Res.Free;
end; 

2、Split函数(自建)

var
  I: Integer;
  S: string;
  A: TArray<string>;
begin
  S := 'AAA分割bbb分割ccc';
  A := S.Split(['分割']);
  for I := 0 to High(A) do
    ShowMessage(A[I]);
end;

 

输出结果为:

AAA

BBB

CCC

 

var

  str: string;
  arr: TArray<string>;
begin
  str := 'A-1,B-2,,,C-3,D-4';

  arr := str.Split([',']);                                   // arr[0] = A-1; Length(arr) = 6
  arr := str.Split([','], TStringSplitOptions.ExcludeEmpty); // 忽略空项; Length(arr) = 4
  arr := str.Split([','], 2);                                // 只提取前 2

  arr := str.Split([',', '-'], ExcludeEmpty); //arr[0] = A; Length(arr) = 8

  arr := str.Split([',,,'], None);            // 分隔符可以是一个字符串数组
end;

posted on 2019-01-24 07:05  newlives  阅读(3138)  评论(0编辑  收藏  举报