class Solution {
public static boolean flag;
public int myAtoi(String str) {
str = str.trim();
if (str == null || str.length() < 1) {
flag = false;
return 0;
}
int[] strToIntArr = new int[str.length()];
char symbol =str.charAt(0);
boolean symbolFlag = true;
int start = 0;
if (symbol == '+') {
symbolFlag = true;
start = 1;
} else if (symbol == '-') {
symbolFlag = false;
start = 1;
}
double sum = 0;
for (int i = start; i < str.length(); i++) {
if (str.charAt(i) < '0' || str.charAt(i) > '9')
break;
if (str.charAt(i) >= '0' && str.charAt(i)<='9')
sum = sum*10+str.charAt(i) - '0';
else {
flag = true;
return 0;
}
}
if (symbolFlag) {
if (sum >= 0x8000_0000L) {
flag = true;
return Integer.MAX_VALUE;
} else {
sum = (int)sum;
}
} else {
if (sum == 0x8000_0000L) {
sum = 0x8000_0000;
} else {
sum = (int)-sum;
}
}
if (sum == 0) {
flag = true;
}
return (int)sum;
}
}
值溢出方面参考了一下:https://blog.csdn.net/ljiabin/article/details/40508889