题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
注意若你代码遇到索引越界问题,就要考虑整型的最大范围
分析
步骤:
1、判断第一个位置是否有正负号,负号最后乘上去即可
2、转换成数字,求和
实现代码如下:
public class Solution {
public int StrToInt(String str) {
if(str.length() == 0||str == "") {
return 0;
}
int start = 0;//用于判断是从首位进行判断,还是第二位进行判断
int sum = 0;
boolean flag = true;
char[] ch = str.toCharArray();
//1、判断第一个位置是否有正负号,负号最后乘上去即可
if(ch[0] == '+' || ch[0] == '-'){
start = 1;
if(ch[0] == '-'){
flag = false;
}
}
//2、转换成数字
for(int i = start ; i < ch.length ; i++){
//判断是否为数字
if(ch[i]<'0' || ch[i]>'9'){
return 0;
}
sum = sum * 10 + (ch[i]-'0');
}
return flag ? sum : sum * (-1);
}
}