把字符串转换成整数

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

输入描述:
输入一个字符串,包括数字字母符号,可以为空


输出描述:
如果是合法的数值表达则返回该数字,否则返回0

输入例子:
+2147483647
    1a33

输出例子:
2147483647
    0
public class Solution {
    public int StrToInt(String str) {
        int sign = 1;
        int len = str.length();
        int num = 0;
        if(len<1) return 0;
        if(str.charAt(0) == '-')
            sign = -1;
        for(int i = 1;i<len;i++){
            if(str.charAt(i)<'0'||str.charAt(i)>'9')
                return 0;
        }
        if(str.charAt(0) != '+' && str.charAt(0) != '-'){
            for(int i = 0;i<len;i++){
                int num1 = Character.getNumericValue(str.charAt(i));
                int num2 = (int)Math.pow(10,len-i-1);
                num = num + num1*num2;
            }
            return num;
        }
        else if(str.charAt(0) == '+'){
            for(int i = 1;i<len;i++){
                int num1 = Character.getNumericValue(str.charAt(i));
                int num2 = (int)Math.pow(10,len-i-1);
                num = num + num1*num2;
            }
            return num;
        }
        else if(str.charAt(0) == '-'){
            for(int i = 1;i<len;i++){
                int num1 = Character.getNumericValue(str.charAt(i));
                int num2 = (int)Math.pow(10,len-i-1);
                num = num + num1*num2;
            }
            return num*-1;
        }
        return 0;
        
    }
}
原文地址:https://www.cnblogs.com/LoganChen/p/6491114.html