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;
