因为Delphi中并没有自带的分拆字符串的函数,但实际编程中又经常会用到。在网上找了一段代码,在使用中发现有Bug,没有考虑到分拆符可能不只一个字符的情况。下面是修改过后的代码(红色部分是修改的代码):
function SplitStr(const Source, Splitter: String):TStringList; var temp: String; i: Integer; begin Result := TStringList.Create; //如果是空自符串则返回空列表 if Source='' then Exit; temp := Source; i := pos(Splitter, Source); while i <> 0 do begin Result.add(copy(temp, 0, i-1)); Delete(temp, 1, i - 1 + Length(Splitter)); i:=pos(Splitter, temp); end; Result.add(temp); end;