把字符串转换成整数

题目

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。

解题

说明:字符串可能带有正负号,可能含有非数字字符
先判断是否是数字
再判断是正负
再转换

public class Solution {
    public int StrToInt(String str) {
        char[] chs = str.toCharArray();
        if( !isDigit(chs))
            return 0;
        int digit = 0;
        int k = 0;
        boolean flag = true;
        if(chs[0]=='+' ) k=1;
        if(chs[0]=='-' ){
            k = 1;
            flag = false;
        }
        for(int i = k;i<=  chs.length -1;i++){
            digit = digit * 10 + (chs[i] - '0');
        }
        if(!flag)
            digit = - digit;
        return digit;
    }
    public boolean isDigit(char[] chs){
        if(chs == null || chs.length == 0)
            return false;
        int k = 0;
        if(chs[0]=='+' || chs[0] =='-') k=1;
        for(int i = k;i< chs.length ;i++)
            if(!( '0'<= chs[i] && chs[i] <= '9'))
                return false;
        return true;
    }
}

如果有小数怎么办?
检测是否是合法小数
小数点最多只有一个,不可以在最后,可以在第一
先一小数点划分成两个字符串
整数部分按照上面处理得到a
小时部分按照上面处理得到b
下面就是合并
num = a+b/(pow(10,blen))

你可能感兴趣的:(把字符串转换成整数)