注意溢出的處理
public class Solution {
int solve(char c){
if(c>'9')
return -1;
if(c<'0')
return -1;
return c-'0';
}
public int StrToInt(String str) {
int maxn1=2147483647;
int maxn2=-2147483648;
char []s=str.toCharArray();
int flag=1;
int l=s.length;
int sum=0;
for(int i=0;i<l;i++){
if(i==0){
if(s[i]=='-')
{
flag=-1;
continue;
}
if(s[i]=='+'){
continue;
}
}
int m=solve(s[i]);
if(m==-1)
return 0;
if(flag==1)
{
if((maxn1-m)/10<sum)///溢出
return 0;
sum=sum*10+m;
}
else
{
if((maxn2+m)/10>sum)///溢出
return 0;
sum=sum*10-m;
}
}
return sum;
}
}