이 글의 내용은 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]<'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);
위 내용은 PHP는 문자열을 정수로 변환하는 메서드를 구현합니다(코드 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!