class Solution { public int myAtoi(String s) { int len = s.length(); int index = 0; char[] chars = s.toCharArray(); // 1、消除字符串s开头的空格 while (index index++; } if (index == len) { // s是一个空字符串 return 0; } // 2、判断正负号,false为+,true为- boolean negative = false; if (chars[index] == '-') { negative = true; index++; }else if (chars[index] == '+'){ index++; }else if (!Character.isDigit(chars[index])){ // 非数字的字符 return 0; } // 3、转换字符串为数字 int sum = 0; while (index int num = chars[index] - '0'; // 本来应该是 sum * 10 + num > Integer.MAX_VALUE,但是有可能sum已经越界了 if (sum > (Integer.MAX_VALUE-num)/10) { return negative==true?Integer.MIN_VALUE:Integer.MAX_VALUE; } sum = sum*10+num; index++; } return negative==true?-sum:sum; } }