本篇文章帶給大家的內容是介紹PHP實作將一個字串轉換成一個整數的方法(程式碼範例)。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。
題目描述
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時傳回0),要求不能使用字串轉換整數的函式庫函數。數值為0或字串不是一個合法的數值則回傳0。
範例1:
輸入: 2147483647
a33
##1.處理負號
2.處理正號
3.字串中包含非數字字元的直接回傳0
4.'0'字元的ascii碼是48
4.遍歷字串,從0位置開始掃描,當前數字字元ascii碼減去'0'字元ascii碼,就應該是目前位置的整數
#演算法:
StrToInt(str) if empty(str) return 0 symbol=1 if str[0]=='+' symbol=1; str[0]='0' if str[0]=='-' symbol=-1; str[0]='0' res=0 for i=0;i<str.size;i++ if(str[i]<'0' || str[i]>'9') //包含非数字字符的,直接返回0 res=0 break; res=res*10+str[i]-'0' //进位用和ascii相减算出整型数字 res=symbol*res //加上正负号 return res
php實作(程式碼範例):
<?php function StrToInt($str){ if (empty($str)){return 0;} $symbol=1; if ($str{0}=='+'){ $symbol=1; $str{0}='0'; } if ($str[0]=='-'){ $symbol=-1; $str{0}='0'; } $res=0; for ($i=0;$i<strlen($str);$i++){ if($str{$i}<'0' || $str{$i}>'9'){ //包含非数字字符的,直接返回0 $res=0; break; } $res=$res*10+$str{$i}-'0'; //进位用和ascii相减算出整型数字 } $res=$symbol*$res; //加上正负号 return $res; } $s="-123"; $res=StrToInt($s); var_dump($res);
以上是PHP實作將一個字串轉換成一個整數的方法(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!