public class Solution { public int myAtoi(String str) { //此题需要注意的细节很多 //1.对于“ -123”,“ +3231”,需要考虑去除最前的空格,主要利用循环 //2.对于越界情况需要判断(此题返回的是32位最大正数或32位最小负数),声明返回值时,需要声明为long //3.要考虑“+”和无符号的处理 //4.字符和数值的转换需要牢记s.charAt(i)-'0' //5.遇到非数值时,返回前面的数值 if(str==null||str.length()==0)return 0; int i=0; int flag=0; long res=0; while(str.charAt(i)==' ') i++; if(str.charAt(i)=='-'){ flag=1; i++; }else if(str.charAt(i)=='+'){ i++; } while(i='0'&&str.charAt(i)<='9'){ res=res*10+str.charAt(i)-'0'; if(flag==0&&res>0x7fffffff)return 0x7fffffff; if(flag==1&&-res<0x80000000)return 0x80000000; }else break; i++; } if(flag==1) res=-res; return (int)res; }}