码迷,mamicode.com
首页 > 其他好文 > 详细

将string 转int

时间:2016-10-08 13:43:40      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function(str) {
    
        str = str.replace(/^(\s|\u00A0)+/,‘‘).replace(/(\s|\u00A0)+$/,‘‘);

        if( (str[0] !== ‘-‘ && str[0] !== ‘+‘) && isNaN(str[0])){
            return 0;
        }
        var num = [];
        var i =0;
        if(str[0] === ‘-‘ || str[0] === ‘+‘){
            i =1;
        }
        for(; i < str.length ; i++){
            if(isNaN(str[i]) || str[i] === ‘ ‘){
                break;
            }
            num.push(str[i]);
        }
        var int_num = 0;
        var ten = 1;
        while(num.length > 0){
            var tmp = num.pop() * ten;
            int_num += tmp;
            ten *= 10;
        }
        if(str[0] === ‘-‘){
            int_num = 0 - int_num;
        }
        if(int_num > 2147483647){
            return 2147483647;
        }
        if(int_num < -2147483648){
            return -2147483648;
        }

        return int_num;
};

主要看异常处理情况:

1.前后空格的处理

2.+,- 符号的处理

3.要求字符串后有数字以外的字符仍然能够正常工作,例如‘452fjse‘ 输出 452

4.超过int 型数值范围处理 最大值2147483647 和最小值 -2147483648 。

将string 转int

标签:

原文地址:http://www.cnblogs.com/neverleave/p/5938142.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!