PHP-字串轉整型-不使用內建函式
阿新 • • 發佈:2018-12-19
輸入一個由數字組成的字串,轉換成整數輸出,如輸入‘123’,輸出123,不得使用庫函式。 思路: -引用自 程式設計之法-面試和演算法心得- 下面我們利用 ascii 碼的方式去做轉換,因為每個字元都對應一個 ascii 碼,當對這個字元做加減乘除的時候,實際上就是對 ascii 碼做加減乘除操作,也就是整型操作,最終會返回一個整型數字。 -圖片轉自網路-
通過上圖可以看到字元 ‘0’ ~ ‘9’ 的 ascii 碼是 48~57 我們在轉換的時候就是用每一個字元減去 ‘0’ 例如: ‘1’ - ‘0’ = 1、‘2’ - ‘0’ = 2 返回值就是一個Int型別,下面具體看程式碼實現。
function convertInt($strInt = ''){
//1.判斷是否輸入為空。2是否含有非數字的字元。3.如果第一個字串是‘-’,最終返回應為負整數。4.字串太長會導致轉換成整數,整數溢位。
if($strInt == ''){
return 0; //如果輸入為空字串,返回0
}
$len = strlen($strInt);
$int = 0;
for($i=0;$i<$len;$i++){
$int *= 10;
$num = $strInt{$i} - '0';
$int += $num;
}
return $int;
}
$num = '345432123';
var_dump(convertInt($num)); //輸出: int(345432123)