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;

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;