一道面试题的解法

有一道delphi面试题如下:

给一个字符串,要求写一个函数,找到其中的数字并求和。

如给定字符串:78a7283bbh90g,则数字和为:78+7283+90

下面给出一个比较简单的算法:

function getNumSum(const instr: string): double;

var

  sl: TStringList;

  aStr: String;

  i: integer;

begin

  result := 0;

  aStr := '';
  for i:=0 to Length(instr)-1 do begin

    if (instr[i] >='0' and instr[i] <= '9') or (instr[i]='.') then

      aStr := aStr + instr[i]
    else

      aStr := aStr + ',';
  end;

  aStr := aStr + ',';
  sl := TStringList.Create;
  try

    sl.commaText := aStr;

    for i:=0 to sl.count-1 do

      Result := Result + StrtoFloatDef(sl[i],0);

  finally

    sl.free;

  end;

end;
原文地址:https://www.cnblogs.com/jackkwok/p/6836672.html