获取Pascal中字符串的整数部分

时间:2010-10-01 14:04:15

标签: scripting string pascal

我有一个字符串Alpha 2,我需要从中提取整数部分,即2

这是一个快速而又肮脏的项目,我目前对学习Pascal不感兴趣。我只需要一个快速的答案!

2 个答案:

答案 0 :(得分:2)

对于搜索字符串中第一个数字并将其作为整数返回的方法,请使用以下代码。如果字符串中没有找到数字,它将返回正整数值或-1。

function IntegerInString(s: string) : integer;
var i, state, startPos, endPos : integer;
begin
  state := 0;
  startPos := -1;
  endPos := Length(s);
  for i := 1 to Length(s) do
  begin
    if ((s[i] >= '0') and (s[i] <= '9') then
    begin
      if state = 0 then startPos := i;
      state := 1;
    end else
      if state = 1 then
      begin
        endPos := i;
        break;
      end;
    end;
  end;
  if startPos > -1 then
    result := IntToStr(Copy(s, startPos, endPos))
  else
    result := -1;
end;

答案 1 :(得分:0)

var
  sub: string;
  i: Integer;
begin
  sub := Copy('Alpha 2', 7, 1);
  i := StrToInt(sub);

-

const
  str = 'Alpha 2';
var
  i: Integer;
begin
  i := StrToInt(str[7]);

-

var
  str: string;
  sub: string;
  spc: Integer;
  i: Integer;
begin
  str := 'Alpha 257';
  spc := Pos(' ', str);
  sub := Copy(str, spc + 1, Length(str) - spc);
  i := StrToInt(sub);

如果您不希望在参数不是整数时引发异常,那么还有StrToIntDef