ホームページ  >  記事  >  バックエンド開発  >  PHP は文字列を整数に変換するメソッドを実装します (コード例)

PHP は文字列を整数に変換するメソッドを実装します (コード例)

青灯夜游
青灯夜游転載
2018-10-26 17:41:472710ブラウズ

この記事の内容は、PHPで文字列を整数に変換する方法(コード例)を紹介するものです。一定の参考値があるので、困っている友人は参考にしていただければ幸いです。

問題の説明
文字列を整数に変換します (Integer.valueOf(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);

以上がPHP は文字列を整数に変換するメソッドを実装します (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。