32.将字符串转换为数字
题目描述
实现函数 atoi 。函数的功能为将字符串转化为整数
提示:仔细思考所有可能的输入情况。这个问题没有给出输入的限制,你需要自己考虑所有可能的情况。
输入
"123"
1
返回值
123
1
分析
1.对字符串进行判空处理,如果字符串为空,则返回值为0
2.然后将字符串转换为一个char型的数组
3.判断正负号
4.判断会不会越界,会越界的时候直接输出结果
5.如果遇到字母直接退出
代码实现
import java.util.*;
public class Solution {
/**
*
* @param str string字符串
* @return int整型
*/
public int atoi(String str) {
if (str == null || str.trim().length() < 1)
return 0;
char[] c = str.trim().toCharArray();
int sign = 1;
int index = 0;
if (c[0] == '+')
index++;
if (c[0] == '-') {
sign = -1;
index++;
}
int num = 0;
for (int i = index; i < c.length; i++) {
if (c[i] - '0' >= 0 && c[i] - '9' <= 0) {
if (num > Integer.MAX_VALUE / 10 || num == Integer.MAX_VALUE / 10 && c[i] - '7' > 0) {
if (sign > 0)
return Integer.MAX_VALUE;
else
return Integer.MIN_VALUE;
}
num = 10 * num + c[i] - '0';
} else
break;
}
return num * sign;
}
}