08_String to Integer (atoi)

1.Question

2.Solution

public class Solution {
    public int myAtoi(String str) {
        int result = 0;
        long temp = 0;
        int flag = 1;
        if(str == null || str.equals("")){
            return 0;
        }
        
        int len = str.length();
        int k = 0;
        while(str.charAt(k) == ' '){
            k++;
        }
      
        if(str.charAt(k) == '+'){
            flag = 1;;
         }
         else if(str.charAt(k) == '-'){
            flag = -1;
         }else if(!(str.charAt(k) >= '0' && str.charAt(k) <= '9' )){
             return 0;
         }else{
            result = str.charAt(k) - '0';
         }
        temp = result;
        
        System.out.println(flag);
        for(int i = k + 1; i < len; i++){
            if(str.charAt(i) >= '0' && str.charAt(i) <= '9' ){
                temp = temp * 10 + str.charAt(i) - '0';
                result = result * 10 + str.charAt(i) - '0';
                System.out.println(temp);
                
                if (flag == 1 && temp > Integer.MAX_VALUE){
                     System.out.println(1);
                     return Integer.MAX_VALUE;
                }
                
                    
                if (flag == -1 && -1*temp < Integer.MIN_VALUE){
                    System.out.println(-1);
                    return Integer.MIN_VALUE;
                }
                    
            }else{
               break;
            }
            
        }
       
        return flag * result;
    }
}

 

3.Test

posted @ 2016-07-01 17:17  桃源仙居  阅读(111)  评论(0)    收藏  举报