对一个有分隔符的字符串如何分割成几个单一小字符串
1、使用CommaText
Var Stl:TStringList;
Const S:=‘20071018085500 155.30 220.60 128.40 120.80 498.90 1.8 935.0';
Stl := TStringList.Create();
Stl.Delimiter := ' '; //分隔符定义为空格
Stl.CommaText := S; //分割动作
结果在Stl中得到以下数据:
1、20071018085500
2、155.30
3、220.60
4、128.40
5、120.80
6、498.90
7、1.8
8、935.0}
2、Delphi分割字符串的函数--ExtractStrings
Unit
Classes
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;
Separators 参数指定一组分割符,所有的子串都是用它们分割的。但是成对的引号内的分割符会被忽略(参看下面的例子)。
WhiteSpace 参数指定每个子串开头被忽略的字符s。
Content 参数就是被分割的“源”串了。
Strings 参数用于接收分割后的各个子串。它的原有内容不会被清空。别忘了Create哦。
另外,EctractStrings不会把(忽略WhiteSpaces后的)空串加入到Strings中。
例子如下:uses
Classes;
var
ASource: PChar;
AStr: String;
ACount: Integer;
AStrings: TStringList;
begin
ASource := 'ABC|... DEF|#### GHI|"|# http://www.sohu.com"'/;
AStrings := TStringList.Create;
try
ACount := ExtractStrings(['|'], [' ','#','.'], ASource, AStrings);
{do any further processing}
//for AStr in AStrings do
// Writeln(AStr);
finally
AStrings.Free;
end;
Readln;
end.
结果得到下面四个字符串:
1、ABC
2、DEF
3、GHI
4、|# http://www.sohu.com/