(问题1)编写一段代码,提取给定字符串中的所有数字,并求和.例: 10a2b300c,提取出10,2,300三个数字,相加得出的结果就是312(问题2)删除Tstringlist列表中的重复元素,完成下面程序
procedure clearSameItemByList(aList:TstringList)

解决方案 »

  1.   

    1)用ASCII进行判断
    2)
    function ClearSameItemByList(aList: TStringList): TStringList;
    var
      i: Integer;
      bList: TStringList;
    begin
      bList := TStringList.Create;
      try
        for i := 0 to alist.Count - 1 do
        begin
          if  bList.IndexOf(aList.Strings[i]) = -1 then
            bList.Add(aList.Strings[i])
          else
            continue;
        end;
      finally
       // bList.Free;
      end;
      result := bList;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
      AList, BList: TStringList;
    begin
      AList := TStringList.Create;
      BList := TStringList.Create;
      AList.Add('aa');
      AList.Add('BB');
      AList.Add('aa');
      BList := ClearSameItemByList(AList);
      for i := 0 to BList.Count - 1 do
        ShowMessage(BList.Strings[i]);
    end;
      

  2.   

    str:string
    str[i]表示该数组的第i个元素
    字符串长度计算:length()
    判断是否数字,用IN运算
      

  3.   

    很简单的问题,第一个没什么好方法,也不需要什么好方法,逐字节读取然后判断、计算就是了(别告诉我你这也不会)第二个问题可以通过indexof属性来判断
    弄两个ListBox,第一个里面放入你要查找的数据,然后循环读取,
    if ListBox2.Items.IndexOf(Listbox1.Items.String[i])<0 then ListBox2.Items.Add(Listbox1.Items.String[i])当然ListBox也可以换成Memo或者StringList