
题目
写一个函数StrToInt,实现把字符串转换成整数的功能。不能使用atoi或者其他类似的库函数。
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
private boolean isInvalid = false;
public int (String str) { if (str == null || str.length() < 1) { isInvalid = true; return 0; }
char[] array = str.toCharArray(); long result = 0; boolean minus = false; int index = 0;
if (array[index] == '+') index++; else if (array[index] == '-') { minus = true; index++; }
for (; index < array.length; index++) { if (array[index] < '0' || array[index] > '9') { isInvalid = true; return 0; }
int flag = minus ? -1 : 1; result = result * 10 + flag * (array[index] - '0');
if ((!minus && result > Integer.MAX_VALUE) || (minus && result < Integer.MIN_VALUE)) { isInvalid = true; return 0; } }
return (int)result; }
|
近期评论