• 字符串转换为int


    public static int strToInt(String str) {
            char[] s = str.trim().toCharArray();
            int len = s.length;
            // 去除空格后长度为0则返回0
            if (len == 0)
                return 0;
            int sign = 1;
            int i = 0;
            int currNum = 0;
            // 确定符号
            if (s[i] == '-') {
                sign = -1;
                i++;
            } else if (s[i] == '+')
                i++;
            // 对连续数字进行遍历
            while (i < len && isDigit(s[i])) {
                // 当前位置对应的数字
                int k = sign * (s[i] - '0');
                // 判断ans如果加上当前位的数字是否超出范围
                // 此处不能计算出新的ans再比较,因为计算出的新的ans可能已经超出范围了
                if (sign > 0 && currNum > (Integer.MAX_VALUE - k) / 10)
                    return Integer.MAX_VALUE;
                if (sign < 0 && currNum < (Integer.MIN_VALUE - k) / 10)
                    return Integer.MIN_VALUE;
                // 加入当前位的数字
                currNum = currNum * 10 + k;
                i++;
            }
            return currNum;
        }
    
        public static boolean isDigit(char c) {
            return c - '0' >= 0 && c - '9' <= 0;
        }
       char strAry[] = str.trim().toCharArray();
            if (strAry.length == 0) {
                return 0;
            }
            int len = strAry.length;
            int i = 0;
            int retNum = 0;
            int sign = 1;//符号位正数
            if (strAry[0] == '-') {
                sign = -1;
                i++;
            }
    
            for (; i < len; i++) {//是数字才能转换
                if (strAry[i] - '0' >= 0 && '9' - strAry[i] >= 0) {
                    int currNum = sign * (strAry[i] - '0');//转换为数字
                    if (retNum > 0 && (retNum > (Integer.MAX_VALUE - currNum) / 10)) {
                        return Integer.MAX_VALUE;
                    }
    
                    if (retNum < 0 && (retNum < (Integer.MIN_VALUE - currNum) / 10)) {
                        return Integer.MIN_VALUE;
                    }
    
                    retNum = retNum * 10 + currNum;
                }
            }
            return retNum;
  • 相关阅读:
    查看linux版本号
    apache调用php执行系统命令
    Linux 网络配置
    解决 Redhat 出现”This system is not registered with RHN”更新
    mysql服务器出问题重新安装与数据恢复
    【转载】RHEL系统crontab计划任务管理
    常用数据结构
    Web负载均衡——《构建高性能web站点》读书笔记
    Jackson 数据类型转换(使用JavaType)
    redis的基本使用
  • 原文地址:https://www.cnblogs.com/zzq-include/p/13581975.html
Copyright © 2020-2023  润新知