一、题目
1、审题:
2、分析:
截取所给字符串的最前面的数字部分,否则为0;
二、解答
1、分析:
a、字符串去前后空格;
b、判断正负号;
c、依次截取字符,判断是否为数字,进行组装;
class Solution { public int myAtoi(String str) { str = str.trim(); int len = str.length(); if(str == null || len == 0) return 0; int index = 0; boolean isNegative = false; if(str.charAt(0) == '-') { isNegative = true; index++; } else if(str.charAt(0) == '+') { index++; } long result = 0; for ( ; index < len; index++) { int num = str.charAt(index) - '0'; if(num < 0 || num > 9) break; if(!isNegative) { // 在里边判断可以避免, result 超出 Long 范围溢出的情况 result = result * 10 + num; if(result > Integer.MAX_VALUE) return Integer.MAX_VALUE; } else { result = result * 10 - num; if(result < Integer.MIN_VALUE) return Integer.MIN_VALUE; } } return (int)result; } }