题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
返回值描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输入
"+2147483647"
返回值
2147483647
示例2
输入
"1a33"
返回值
0
解题思路
前判断前边是否有正负,记录下符号位
之后判断各位是否为数字,然后计算即可
Java代码
public class Solution {
public int StrToInt(String str) {
if(str.length()==0) return 0;
int flag=1;
int ans=0;
char[] s=str.toCharArray();
int i=0;
if(s[0]=='+'|| s[0]=='-'){
i=1;
if( s[0]=='-') flag=-1;
}
for(;i<s.length;i++){
if(s[i]>='0' && s[i]<='9'){
int tmp=(s[i]-'0');
ans=10*ans+tmp;
}
else{
break;
}
}
if(i==s.length) return flag*ans;
return 0;
}
}
京公网安备 11010502036488号