import java.util.*; public class Solution{ public int StrToInt(String s){ s = s.trim(); char[] arr = s.toCharArray(); boolean isNeg = false; int start = 1,n = arr.length; if(n == 0) return 0; if(arr[0] == '-')isNeg = true; else if(arr[0] != '+'){ start = 0; } long res = 0; int bound = Integer.MAX_VALUE; for(int i = start;i < n;i ++){ if(arr[i] < '0' || arr[i] > '9') break; res = res * 10 + arr[i] -'0'; if(res > bound){ return isNeg ? Integer.MIN_VALUE : Integer.MAX_VALUE; } } return isNeg ? (int)res *(-1) : (int) res; } }

// int bound=Integer.MAX_VALUE; // for(int i=start;i<n;i++){ // //如果不是'0'-'9'的字符,直接终止循环 // if(arr[i]<'0'||arr[i]>'9') break; // //字符转化为对应数字并加在结果上 // res=res10+arr[i]-'0'; // //如果越界,大于最大边界值,返回最大边界,小于最小边界值,返回最小边界 // if(res>bound){ // return isNeg?Integer.MIN_VALUE:Integer.MAX_VALUE; // }
// } // return isNeg?(int)res
(-1):(int)res; // } // }