2010-10-01 37 views

回答

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,如果你不希望在參數不是一個整數,以提高例外時。

+0

我將與您的第三個建議。 – Icode4food 2010-10-01 14:30:49

+0

如果使用Free Pascal,則可能需要使用strutils.rpos(字符串尾部的pos)。如果數字前面的文本包含空格,它也會存活。 – 2010-10-02 09:08:19

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;