题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0
解题思路
从后往前遍历会更简单。
-
如果字符位置 0~9 之间,ret = ret + str.charAt(i)*10^(length-1-i);
-
如果是第一个字符,且不在 0~9 之间:
-
如果是‘+’,continue;
-
如果是‘-’,ret = ret * -1;
-
-
其他情况均返回 0;
代码
public class Solution {
public int StrToInt(String str) {
if (str == null || str.length() == 0)
return 0;
int ret = 0;
for (int i = str.length()-1; i >= 0; i--) {
if (str.charAt(i) <= '9' && str.charAt(i) >= '0')
ret = ret + (str.charAt(i) - '0') * (int)Math.pow(10, str.length()-1-i);
else if (i == 0 && str.charAt(i) == '+')
continue;
else if (i == 0 && str.charAt(i) == '-')
ret *= -1;
else
return 0;
}
return ret;
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于