Rumah >pembangunan bahagian belakang >tutorial php >PHP实现将一个字符串转换成一个整数的方法(代码示例)

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

青灯夜游
青灯夜游ke hadapan
2018-10-26 17:41:472802semak imbas

本篇文章给大家带来的内容是介绍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]<&#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);

Atas ialah kandungan terperinci PHP实现将一个字符串转换成一个整数的方法(代码示例). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:cnblogs.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam