把字符串转成整数
题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
分析
这道题不复杂,但是需要考虑全面。
比如
- 输入为空时,输出0;
- 输入仅为一个+号或-号,
- 输入为+123,输出123,输入为-321,输出-321。
- 输入为非数字时,输出为0。
Java代码
public class Solution {
public int StrToInt(String str) {
// 出入为空或长度为0的情况
if(str==null && str.lenght() == 0)
return 0;
int res = 0;
char[] arr = str.toCharArray();
for(int i=0; i<str.lenght(); i++){
// 首个字符是正负号时
if(i == 0 && (arr[i]=='+' || arr[i]=='-'))
continue;
// 输入符号非数字时
if(arr[i]<'0' || arr[i]>'9')
return 0;
res = res * 10 + (arr[i]-48);
}
// 输入为负数的情况
if(arr[0] == '-')
return -res;
return res;
}
}