將一個字符串轉換成一個整數,要求不能使用字符串轉換整數的庫函數。 數值爲 0 或者字符串不是一個合法的數值則返回 0java
字符 ‘0’ 的 ASCII 值是 48,‘1’ 到 '9' 則是從 48 起始依次遞增,所以解題的關鍵在於:函數
public class Solution { public int StrToInt(String str) { if(str == null || str.length() == 0) { return 0; } else if(str.length() == 1 && (str.charAt(0) == '+' || str.charAt(0) == '-')) { return 0; } int result = 0; boolean flag = true; int j = 1; if(str.charAt(0) == '+') { str = str.substring(1, str.length()); } if(str.charAt(0) == '-') { flag = false; str = str.substring(1, str.length()); } for(int i = str.length() - 1; i >= 0; i--) { int temp = str.charAt(i) - 48; if(temp < 0 || temp > 9) { return 0; } result += temp * j; j *= 10; } if(flag == false) { return -result; } return result; } }