首頁  >  文章  >  後端開發  >  PHP實作將一個字串轉換成一個整數的方法(程式碼範例)

PHP實作將一個字串轉換成一個整數的方法(程式碼範例)

青灯夜游
青灯夜游轉載
2018-10-26 17:41:472753瀏覽

本篇文章帶給大家的內容是介紹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]<&#39;0&#39; || 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}==&#39;+&#39;){ 
                $symbol=1; 
                $str{0}=&#39;0&#39;;
        }   
        if ($str[0]==&#39;-&#39;){
                $symbol=-1; 
                $str{0}=&#39;0&#39;;
        }   
        $res=0;
        for ($i=0;$i<strlen($str);$i++){
                if($str{$i}<&#39;0&#39; || $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中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除