>  기사  >  백엔드 개발  >  PHP는 문자열을 정수로 변환하는 메서드를 구현합니다(코드 예).

PHP는 문자열을 정수로 변환하는 메서드를 구현합니다(코드 예).

青灯夜游
青灯夜游앞으로
2018-10-26 17:41:472767검색

이 글의 내용은 PHP에서 문자열을 정수로 변환하는 방법을 소개하는 것입니다(코드 예시). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

문제 설명
문자열을 정수로 변환합니다(Integer.valueOf(string) 함수를 구현하지만 문자열이 숫자 요구 사항을 충족하지 않으면 0을 반환함). 문자열 변환은 정수용 라이브러리 함수를 사용할 수 없습니다. 값이 0이거나 문자열이 유효한 값이 아닌 경우 0이 반환됩니다.

예 1:

입력: +2147483647
a33

출력: 2 147483647#🎜 🎜#         0# 🎜 🎜#
Ideas:

1. 음수 기호 처리

2. 양수 기호 처리

3. 숫자 문자는 0

4를 직접 반환합니다. '0' 문자의 ASCII 코드는 48

4입니다. 문자열을 탐색하여 0 위치부터 스캔을 시작합니다. 현재 숫자 문자 ASCII 코드가 감소합니다. 현재 위치의 정수여야 하는 '0' 문자 ASCII 코드를 제거합니다.

Algorithm:

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으로 문의하시기 바랍니다. 삭제