将字符串转化为整数
题目描述
实现函数 atoi 。函数的功能为将字符串转化为整数
提示:仔细思考所有可能的输入情况。这个问题没有给出输入的限制,你需要自己考虑所有可能的情况。
代码
import java.util.*;
public class Solution {
/**
*
* @param str string字符串
* @return int整型
*/
public int atoi (String str) {
// write code here
//输入存在前后空格和大数字的情况
if(str == null || str.trim().length()<1) return 0;
//删除前后空格
char arr[] = str.trim().toCharArray();
int sign = 1;
int index = 0;
if(arr[0]=='+') {
index++;
}else if(arr[0]=='-'){
index++;
sign = -1;
}
int num = 0;
for(int i=index; i<arr.length; i++){
if(arr[i]-'0'>=0 && arr[i]-'0'<=9){
//如果当前运算会越界的时候,直接输出结果
//num >= Integer.MAX_VALUE/10 这样写越界容易失误出错
if(num > Integer.MAX_VALUE / 10 || num == Integer.MAX_VALUE / 10 && arr[i]-'7'>0){
if(sign>0) return Integer.MAX_VALUE;
else return Integer.MIN_VALUE;
}
num = num*10 + arr[i]-'0';
}
//如果是字母,跳出循环
else break;
}
return num*sign;
}
}