输入:
"+123a "
“-123a”
“a123”
“123a”
输出
123
-123
0
123
补充:大于2147483647 则取Integer.MAX_VALUE、小于-2147483648则取MIN_VALUE
class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.next();int res = new Main().strToInt(str);System.out.println(res);}private int strToInt(String str) {String s = str.trim();if (s.length() == 0)return 0;char[] ch = s.toCharArray();int sign = 0;int index = 0;String firstEle = String.valueOf(ch[index]);if (firstEle.equals("-")){sign = -1;index++;} else if (firstEle.equals("+")){sign = 1;index++;}else if (ch[index] > '9' || ch[index] <'0'){return 0;}sign = 1;int temp = Integer.MAX_VALUE / 10;int res = 0;for (int i = index; i < ch.length ; i++) {if (ch[i] > '9' || ch[i] < 0)break;if (res > temp || ((res == temp) && ch[i] > '7'))return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;res = res * 10 + (ch[i] - '0');}return sign* (int)res;}
}