剑指offer四十九之把字符串转换成整数

一、题目

  将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

二、思路

  详见代码。

三、代码

public class Solution {
    public static int StrToInt(String str) {
        //初始条件判断
        if (str.equals("") || str.length() == 0)
            return 0;
        char[] a = str.toCharArray();

        int fuhao = 0;
        if (a[0] == '-')
            fuhao = 1;

        int sum = 0;

        for (int i = fuhao; i < a.length; i++) {
            if (a[i] == '+')  //如果有符号,例如"-+++++",则都跳过
                continue;
            if (a[i] < 48 || a[i] > 57) //如果字符不是‘0’到‘9’
                return 0;
            sum = sum * 10 + a[i] - 48;//字符求和
        }
        return fuhao == 0 ? sum : sum * -1;//判断为正数还是负数
    }
}
View Code

---------------------------------------------

参考链接:

https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e

posted @ 2017-10-13 18:22  AI菌  阅读(248)  评论(0编辑  收藏  举报