劍指offer -- 把字串轉換成整數
阿新 • • 發佈:2018-12-19
題目描述
將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。
- 輸入描述:
輸入一個字串,包括數字字母符號,可以為空
- 輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
- 示例1
輸入
+2147483647 1a33
輸出
2147483647 0
AC程式碼
public class Solution
{
public int StrToInt(String str)
{
if (str == null || str.equals(""))
return 0;
char[] chars = str.toCharArray();
boolean negative = false;
int index = 0;
if (chars[0] == '-'){
negative = true;
index = 1;
}
if (chars[0] == '+')
index = 1;
int sum = 0;
for (int i = index; i < chars.length; i++)
{
if (chars[i] < '0' || chars[i] > '9')
return 0;
sum = sum * 10 + chars[i] - '0';
}
return !negative ? sum : sum * -1;
}
}