public static void main(String[] args) {
// TODO Auto-generated method stub
String str="";
// if (str==null || str.equals("") ||str.trim().equals("")) return 0;
char[] sc=str.trim().toCharArray();//去掉首尾空格 转char[]
int t=1,i=0,ans=0;//t-符号 i-第几位 ans-结果
if (sc[0]=='-' || sc[0]=='+') {
i=1;
if (sc[0]=='-') t=-1;
}
while (i<sc.length)
{
if (sc[i]>47 && sc[i]<58) {//超int的数据进行特殊判断
if (t==1 && (ans>Integer.MAX_VALUE/10 || ans==Integer.MAX_VALUE/10 && (sc[i]-48)>7)) {System.out.println(Integer.MAX_VALUE);break;}
if (t==-1 && (ans<Integer.MIN_VALUE/10 || ans==Integer.MIN_VALUE/10 && (sc[i]-48)>8)) {System.out.println(Integer.MIN_VALUE);break;}
ans=ans*10+t*(sc[i]-48);
}
else break;
i++;
}
if (ans>Integer.MAX_VALUE) System.out.println(Integer.MAX_VALUE);
if (ans<Integer.MIN_VALUE) System.out.println(Integer.MIN_VALUE);
System.out.println(ans);
}
字符串转换整数 (atoi)
最新推荐文章于 2021-03-20 09:21:55 发布