public int strToInt(String str) { // 删除头尾空白符 char[] nums = str.trim().toCharArray(); if(nums.length == 0) { return 0; } int res = 0; // 边界值 两种越界情况 res > bndry 和 res = bndry 且 x > 7 int bndry = Integer.MAX_VALUE / 10; int i = 1; // 正负数 int sign = 1; if(nums[0] == '-') { sign = -1; } else if(nums[0] != '+') { // 无符号 则要从第一个位置开始拼接 i = 0; } for(int j = i; j < nums.length; j++) { // 不是数字直接跳出循环 if(nums[j] < '0' || nums[j] > '9') { break; } // 越界 if(res > bndry || res == bndry && nums[j] > '7') { return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE; } // 字符转数字 res = res * 10 + (nums[j] - '0'); } return sign * res; }
剑指Offer-73把字符串转换成整数
最新推荐文章于 2021-12-20 10:02:10 发布