一.题目描述
请你来实现一个 myAtoi(string s)
函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi
函数)。
https://leetcode-cn.com/problems/string-to-integer-atoi/
二.代码
public int myAtoi(String s) {
char[] charArray = s.toCharArray();
int i = 0;
while (i < charArray.length && charArray[i] == ' ') {
i++;
}
if (i == charArray.length) {
return 0;
}
int result = 0;
boolean flag = true;
if (charArray[i] == '-') {
flag = false;
} else if (charArray[i] == '+') {
} else if (charArray[i] >= '0' && charArray[i] <= '9') {
result = charArray[i] - '0';
} else {
return 0;
}
i++;
int m = Integer.MAX_VALUE / 10;
while (i < charArray.length && charArray[i] >= '0' && charArray[i] <= '9') {
if (result > m || (result == m && charArray[i] >= '8')) {
return flag ? Integer.MAX_VALUE : Integer.MIN_VALUE;
}
result = result * 10 + charArray[i++] - '0';
}
return flag ? result : -result;
}