
- 思想:(源码parseLong)
- 遍历字符串每一位,转换成对应进制的数字
- 结果逐位与进制相乘
- 结果逐位与数字相加
- 特殊情况的判断:
- 字符串为空的情况
- radix越界判断
- 负数处理
@Testpublic void t1() { String s = "20190425"; assertEquals(20190425L, parseLong(s, 10));}private long parseLong(String s, int radix) { int i = 0; //counter int len = s.length(); long result = 0L; while(i < len) { //遍历字符串每一位,转换成对应进制的数字 int digit = Character.digit(s.charAt(i++), radix); //结果逐位与进制相乘 result *= radix; //结果逐位与数字相加 result += digit; } return result;}