1. 程式人生 > >字符串轉整數

字符串轉整數

空字符 pub code 越界 必須 als i++ while amp

1.註重的點在數字是否越界是否為空 數字必須是連續的,例如“+0 213”就是不合法的
public static int myAtoi(String str) {
int num=0;
int flag=1;
int i=0;
int pre=0;
str=str.trim();//去除空字符串
if(str.length()==0 ||str.equals("-")||str.equals("+")){
return 0;
}

    System.out.println("str===>>>"+str);
    if(str.charAt(0)==‘-‘||str.charAt(0)==‘+‘){
        flag=str.charAt(0)==‘-‘?-1:1;
        i++;
    }
    while(i<str.length()&&str.charAt(i)>=‘0‘&&str.charAt(i)<=‘9‘){

        pre=num;
        num=num*10+str.charAt(i++)-‘0‘;
         System.out.println("num:"+num+"===flag===>>"+flag);
         if(num/10!=pre){//如果乘以10之後的數與除10值後的數不相等 則證明該數越界
             return (flag == 1) ? Integer.MAX_VALUE : Integer.MIN_VALUE;
         }
    }

    return num * flag;
}

字符串轉整數