题解 | #把字符串转换成整数(atoi)#

把字符串转换成整数(atoi)

http://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f

我们根据题意,只需要处理以下几种情况 1、首位空格:通过trim()函数即可处理 2、正负:通过判断第一位,使用变量储存符号即可 3、非数字字符:对每一位进行判断,非数字则结束 4、越界:通过提前预判,判断拼接后是否大于阈值,进行处理 。

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return int整型
     */
    public int StrToInt (String s) {
        char[] array = s.trim().toCharArray();
        //去除字符串之前的空格
        array = s.trim().toCharArray();
        if(array.length==0)
            return 0;
        int symbol=1;
        long sum=0;
        int num=0;
        int i=0;
        //识别有无正负号
        if(array[i] == '+' || array[i] == '-'){
            symbol = array[i] == '+' ? 1 : -1;
            i++;
        }
        //识别有效整数数字
        while(i < array.length){
            char cur = array[i];
            if(cur < '0' || cur > '9'){
                break;
            }
            sum = sum * 10 + (cur - '0');
            i++;
            sum = sum * symbol;
            if(sum>Integer.MAX_VALUE){
                num = Integer.MAX_VALUE;
                return num;
            }
            else if(sum<Integer.MIN_VALUE){
                num = Integer.MIN_VALUE;
                return num;
            }
            sum = sum * symbol;
        }
        sum = sum * symbol;
        num = (int)sum;
        //返回结果
        return num;
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务