1. 程式人生 > >(劍指offer)把字串轉成整數

(劍指offer)把字串轉成整數

時間限制:1秒 空間限制:32768K 熱度指數:141595
本題知識點: 字串

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

輸入描述:
輸入一個字串,包括數字字母符號,可以為空

輸出描述:
如果是合法的數值表達則返回該數字,否則返回0

示例
輸入
+2147483647
1a33
輸出
2147483647
0

public class Solution {
    public int StrToInt
(String str) { if(str == null || str.length() == 0){ return 0; } char cal = '+'; if(str.charAt(0) == '+'){ str = str.substring(1, str.length()); }else if(str.charAt(0) == '-'){ str = str.substring(1, str.length()); cal =
'-'; } for(int i = 0; i < str.length()-1; i++){ if(str.charAt(i) == '0'){ str.substring(i+1, str.length()); }else{ break; } } for(int i = 0; i < str.length(); i++){ if(!(str.charAt(i)>=
'0' && str.charAt(i)<='9')){ return 0; } } int sum = 0; for(int i = 0; i < str.length(); i++){ sum = sum*10 + (str.charAt(i)-'0'); } if(cal == '-'){ return -sum; }else{ return sum; } } }