字符串轉整數
注意點:
- 需將字符串的前端空格去除
- 首字符可以爲正號,負號或者直接爲數字字符
- 後續字符需要爲數字字符
- 數值越界問題
public static int StringToInteger(String str){
//1.去除前後空格
str = str.trim();
if (str==null||str.length()==0)return -1;
int index = 0;
int sign = 1;
char c = str.charAt(index);
//2.首字符爲正負號
if(c=='+'){
sign = 1;
index++;
}else if(c=='-'){
sign = -1;
index++;
}
long sum = 0;
for(int i = index;i<str.length();i++){
//後續字符需要爲數字字符
if(!Character.isDefined(str.charAt(i))){
return -1;
}
sum = sum*10+str.charAt(i)-'0';
//4.越界問題
if(sign==1&&sum>Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
if(sign==-1&&(-1)*sum<Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
}
return (int) sum*sign;
}