劍指Offer - 把字串轉換成整數(Java實現)
阿新 • • 發佈:2019-01-14
題目描述:
將一個字串轉換成一個整數(實現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; } }