字符串轉整數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); }