この記事の内容は、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]<'0' || str[i]>'9') //包含非数字字符的,直接返回0 res=0 break; res=res*10+str[i]-'0' //进位用和ascii相减算出整型数字 res=symbol*res //加上正负号 return res
<?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 中国語 Web サイトの他の関連記事を参照してください。