字串轉換為int
阿新 • • 發佈:2020-08-29
public static int strToInt(String str) { char[] s = str.trim().toCharArray(); int len = s.length; // 去除空格後長度為0則返回0 if (len == 0) return 0; int sign = 1; int i = 0; int currNum = 0; // 確定符號 if (s[i] == '-') { sign = -1; i++; } else if (s[i] == '+') i++; // 對連續數字進行遍歷 while (i < len && isDigit(s[i])) { // 當前位置對應的數字 int k = sign * (s[i] - '0'); // 判斷ans如果加上當前位的數字是否超出範圍 // 此處不能計算出新的ans再比較,因為計算出的新的ans可能已經超出範圍了 if (sign > 0 && currNum > (Integer.MAX_VALUE - k) / 10)return Integer.MAX_VALUE; if (sign < 0 && currNum < (Integer.MIN_VALUE - k) / 10) return Integer.MIN_VALUE; // 加入當前位的數字 currNum = currNum * 10 + k; i++; } return currNum; } public static boolean isDigit(charc) { return c - '0' >= 0 && c - '9' <= 0; }