大家好,遇到个问题: 现在有一串字符,它由小字符串和空格组成,相邻的小字符串之间以一个空格隔开。  例如:245 563 5689 456987 210 2 352 
请问我如何把没一个小字符串提取出来? 我要的不是把所有空格去掉的长串()24556356894569872102352), 我要提取每一个小字符串,然后分别处理他们。 
知道的大侠,帮忙指点一下。 先谢谢了

解决方案 »

  1.   


    uses StrUtils;var
      str: string;
      Strs: TStringList;
    begin
      str := '245 563 5689 456987 210 2 352';
      Strs := TStringList.Create;
      Strs.Text := AnsiReplaceStr(str, ' ', #10);
      //Strs[0]='245', Strs[1]='563', ...
    end;
      

  2.   


    var
      str: string;
      Sl: TStringList;
    begin
      str := '245 563 5689 456987 210 2 352';
      sl := TStringList.Create;
      sl.CommaText:=str;
      showmessage(sl[0]);//sl[0]='245', sl[1]='563', ...
      sl.Free;
    end;
      

  3.   

    楼上的方法应该是最简单的  str: string;
      Strs: TStringList;
      i ,iPos: Integer;
    begin
      str := '245 563 5689 456987 210 2 352';
      Strs := TStringList.Create;
      for i := 0 to Length(str)-1 do
        begin
          iPos := Pos(str,' ');
          if iPos > 0 then
            begin
              Strs.add(Copy(str,1,iPos-1));
              Delete(str,1,iPos) ;
              if Length(str) > 0 and (iPos <= 0) then
                begin
                  Strs.add(str);
                  Break;
                end;
            end;
        end;
    end;
    //Strs[0]='245', Strs[1]='563', ...
      

  4.   

    TStringListTStringList.Delimiter := ' ' ;
    TStringList.DelimitedText :='245 563 5689 456987 210 2 352'; 
    TStringList.Strings[0] := '245' ;
    TStringList.Strings[1] := '563' ;
    .
    .
    .
      

  5.   

    TStringListTStringList.Delimiter := ' ' ;
    TStringList.DelimitedText :='245 563 5689 456987 210 2 352'; 
    TStringList.Strings[0] := '245' ;
    TStringList.Strings[1] := '563' ;
    .
    .
    .
      

  6.   

      strs := TStringList.Create;
      strs.Delimiter := ' ';
      strs.DelimitedText := '245 563 5689 456987 210 2 352' ;
      for i := 0 to Strs.Count-1 do
        ShowMessage(Strs[i]);