题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
这道题靠考虑到很多边界条件:
(1)字符串为空的情况;
(3)字符串含有非数字字符;
(2)字符串带正负号“+”、“-”,不含非数字字符;
(5)字符串不带正负号且为纯数字字符串;
(4)字符串只有正负号情况;
针对每种情况都要考虑到,所以代码如下:
public class Solution {
public int StrToInt(String str) {
boolean negative=false;
if(str==null||str.length()==0) return 0;
if(str.charAt(0)=='+'){
if(str.length()==1){
return 0;
}
str=str.substring(1);
}else if(str.charAt(0)=='-'){
if(str.length()==1){
return 0;
}
negative=true;
str=str.substring(1);
}
int num=0;
for(int i=0;i<str.length();i++){
if((str.charAt(i)-'0')>9){
return 0;
}
num=num*10+(str.charAt(i)-'0');
}
if(negative==true) num=-num;
return num;
}
}