描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
示例
输入:"+2147483647"
返回值:2147483647
思路
说了是整数,所以比较好解决了,不需要考虑浮点数的可能。
解答
public class Solution {
public int StrToInt(String str) {
if (str.length()==0) return 0;
boolean flag = true;
int res = 0, start = 0;
if (str.charAt(0) == ‘-‘) {
flag = false;
start = 1;
} else if (str.charAt(0) == ‘+‘) {
flag = true;
start = 1;
}
int mount = 1;
for (int i = str.length() - 1; i >= start; i--) {
int a = str.charAt(i);
if (a >= 48 && a <= 57) {
res += (mount * (a - 48));
mount *= 10;
} else {
return 0;
}
}
return flag ? res : -res;
}
}