var sl: TStringList; str: string; i: Integer; begin str := 'aa,b b,cc,dd'; sl := TStringList.Create; sl.Delimiter := ','; sl.DelimitedText := str; for i := 0 to sl.Count - 1 do ShowMessage(sl[i]); FreeAndNil(sl); end; 结果是: aa b b cc dd 它把空格也当成分割符了。 正确的解决方法是: //uses IdStrings var sl: TStringList; str: string; i: Integer; begin str := 'aa,b b,cc,dd'; sl := TStringList.Create; SplitColumns(str, sl, ',');//该函数没有上述的BUG for i := 0 to sl.Count - 1 do ShowMessage(sl[i]); FreeAndNil(sl); end; 结果是: aa b b cc dd