public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
public int StrToInt (String s) {
// write code here
if(s == null ){
return 0;
}
s = s.trim();
if(s.length() == 0){
return 0;
}
int i = 0;
if(s.charAt(i) == '-' || s.charAt(i) == '+'){
boolean flag = false;
if(s.charAt(i) == '-'){
flag = true;
}
i++;
if(i == s.length()){
return 0 ;
}
if(s.charAt(i) >= '0' && s.charAt(i) <= '9'){
long sum = 0;
int j = i;
while(j < s.length() && s.charAt(j) >= '0' && s.charAt(j) <= '9'){
sum = sum * 10 + (s.charAt(j) - '0');
if(flag){
long x = -1 * sum;
if(x < Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
}else{
if(sum >Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
}
j++;
}
return flag ? -1 * (int)sum :(int)sum;
}
}else if(s.charAt(i) >= '0' && s.charAt(i) <= '9'){
long sum = 0;
int j = i;
while(j <s.length() && s.charAt(j) >= '0' && s.charAt(j) <= '9'){
sum = sum*10 + (s.charAt(j) - '0');
if(sum > Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
j++;
}
return (int)sum;
}
return 0;
}
}