zoukankan      html  css  js  c++  java
  • 将string 转int

    /**
     * @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 。

  • 相关阅读:
    4、自定义菜单
    3、关注、取消关注 与 关键字回复
    2、自动回复消息
    1、接入公众平台
    java学习备忘录
    vue组件最佳实践
    js拉起或下载app
    angular1.5 Components
    Charlse 使用小记
    2016年终总结
  • 原文地址:https://www.cnblogs.com/neverleave/p/5938142.html
Copyright © 2011-2022 走看看