/*
判定是否為空
trim 后是否長(zhǎng)度為0
開(kāi)始字符如果不是數(shù)字或者符號(hào) return 0冲九;
sign = 1;
如果開(kāi)始為‘-’ sign = -1帘撰;
start + 1堂湖;
設(shè)置num 為long類(lèi)型 然后 如果字符是數(shù)字 則 *10 疊加;
同時(shí)判斷是否越界羞酗;
*/
class Solution {
? ? public int myAtoi(String str) {
? ? ? ? if(str == null) return 0;
? ? ? ? str = str.trim();
? ? ? ? if(str.length() == 0) return 0;
? ? ? ? if(!(str.charAt(0) == '-' || str.charAt(0) == '+' || (str.charAt(0) <= '9' && str.charAt(0) >= '0'))) return 0;
? ? ? ? int sign = 1;
? ? ? ? long num = 0;
? ? ? ? int start = 0;
? ? ? ? if(str.charAt(0) == '-') {
? ? ? ? ? ? sign = -1;
? ? ? ? ? ? start += 1;
? ? ? ? }
? ? ? ? if(str.charAt(0) == '+') {
? ? ? ? ? ? start += 1;
? ? ? ? }
? ? ? ? for(; start < str.length(); start++) {
? ? ? ? ? ? if(str.charAt(start) <= '9' && str.charAt(start) >= '0') {
? ? ? ? ? ? ? ? num = num * 10 + (str.charAt(start) - '0');
? ? ? ? ? ? ? ? if(num > Integer.MAX_VALUE) {
? ? ? ? ? ? ? ? ? ? return (int)(num = sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE);? ?
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return (int)(num * sign);
? ? }
}