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;