0
我想取回(在運行時),其拆分字符串分隔符,如:德爾福斯普利特():獲取分離器進入分離器列表
aStr := 'foo=bar';
aParts := aStr.Split(['=', '!', '<', '>', '^']);
aParts[0]
是foo
,aParts[1]
爲bar
,但誰是分隔器?有任何方法可以檢索用於分割字符串的字符:=
?
我想取回(在運行時),其拆分字符串分隔符,如:德爾福斯普利特():獲取分離器進入分離器列表
aStr := 'foo=bar';
aParts := aStr.Split(['=', '!', '<', '>', '^']);
aParts[0]
是foo
,aParts[1]
爲bar
,但誰是分隔器?有任何方法可以檢索用於分割字符串的字符:=
?
我認爲你需要分別解析分隔符。例如,下面的代碼將把你的分隔符放到名爲separators的第二個數組中。
var
astr: string;
aparts: System.TArray<System.string>;
separators: System.TArray<System.string>;
findindex: integer;
findpos: integer;
begin
astr := 'foo=bar!abc^def';
aparts := astr.Split(['=', '!', '<', '>', '^']);
findindex := 1;
repeat
findpos := astr.IndexOfAny(['=', '!', '<', '>', '^'], findindex);
if findpos >= 1 then
begin
SetLength(separators, length(separators) + 1);
separators[length(separators) - 1] := astr.Substring(findpos, 1);
end;
findindex := findpos + 1;
until findpos = -1;
end;
也許'aStr [Length(aParts [0])+ 1]'? –
@TomBrunberg我很蠢,對不起:D – ar099968
或者,你只是沒有看到它。但請添加一些實際發生的檢查以防止錯誤。 –