PHP实现将字符串转换成一个整数的方法(代码示例)

PHP实现将字符串转换成一个整数的方法(代码示例)

如果您是本站会员;我们将为您提供技术支持!!!

 

本篇文章给大家带来的内容是介绍PHP实现将一个字符串转换成一个整数的方法(代码示例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

示例1:

输入 : +2147483647
a33

输出 : 2147483647
0

思路:

  • 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);