字符串转整数code
public int myAtoi(String str) { if (str == null || str.length() == 0) return 0; int len = str.length(); double res = 0; // 此处用double,防止数字太大溢出 boolean flag = false; // 标记+/- int i = 0; // 索引 while (i < len && str.charAt(i) == ' ') i++;//直到找到第一个非空格字符 if (i >= len) return 0;//若是去掉空格后没字符了,就返回0 char c = str.charAt(i); if (c == '+') { flag = true; // 标记为正数,继续后移i i++; } else if (c == '-') { // 标记为负数,继续后移i flag = false; i++; } else if (c >= '0' && c <= '9') { flag = true; // 若是是数字,则标记为正数,i不用移动了 } else { return 0; // 非法 } // 从i开始计算 for (int k = i; k < len; k++) { char cur = str.charAt(k); if (cur < '0' || cur > '9') break; res = res * 10 + (cur - '0'); } // 正数,且res大于MAX_VALUE if (flag && res > Integer.MAX_VALUE) return Integer.MAX_VALUE; // 负数,且res小于MIN_VALUE if (!flag && res < Integer.MIN_VALUE) return Integer.MIN_VALUE; return (int) (flag ? res : -res); }