把字符串转换成整数

本贴最后更新于 2345 天前,其中的信息可能已经水流花落

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 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;
    }
}

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...