题目67:把字符串转换成整数
实现一个函数stringToInt,实现把字符串转换成整数这个功能,不能使用atoi或者其他类似的库函数。
分析
该题目主要考察的就是边界条件:
- 空字符串
if (num == null || num.length() < 1)
- 在数字范围
c >= '0' && c <= '9'
- 数据上下溢出
if (tmp > 0x8000_0000L)
- 只有正负号
- 有无正负号
if (first == '-')
else if (first == '+')
- 错误标志输出
throw new NumberFormatException(num)
思路
代码实现
1 | public class _67 { |
输出:(抛异常的输出见注释)
1 | Integer.MIN_VALUE is-2147483648 |
一个机灵:
1 | (res << 1) + (res << 3) 即 res*2+res*8=res*10 |