1. 程式人生 > >劍指Offer - 把字串轉換成整數(Java實現)

劍指Offer - 把字串轉換成整數(Java實現)

題目描述:

將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。數值為0或者字串不是一個合法的數值則返回0。

思路分析:
將字串轉換成整數首先就應該確定字串是整數字符串,第一位可以是符號位,可以是除0~9之外的’+’,’-'字元。
對於整數字符從高位向低位遍歷時,將獲得的高位數字*10再加上當前字元包含的數字所得到的結果就是當前的位得到的整數。
程式碼實現如下:

public class Solution {
    public int StrToInt(String str) {
        //先確定字串是合法的數達式
        if(str == null || str.length() < 1){
            return 0;
        }
        //數字的第一位可以是+/-/或者是數字,先判斷字串第一位字元
        boolean flag = false;//用來標記第一位是否為負號
        if(str.charAt(0) == '-' ){
            flag = true;
        }
        int head = flag ? 1 : 0;
        int sum = 0;
        for( int i = head ; i < str.length(); i++){
            if( i==0 ){
                if(str.charAt(i) == '+') continue;
            }
            if(str.charAt(i) < '0' || str.charAt(i) > '9'){
                return 0;
            }
            int num = str.charAt(i) - '0';
            sum = sum*10+num;
        }
        return flag?sum*-1:sum;
    }
}