若为负数,则输出负数,ASCII码,字符 0 对应 48, 9 对应 57,不在范围内则返回 false
public int StrToInt(String str) {
if(str == null || str.length() == 0)
return 0;
int number = 0;
int mark = 0;
if(str.charAt(0) == '-')
mark = 1; /*为什么要mark要设置为整型的呢?是因为如果是负数那么我们就从下标为1的位置还是算起*/
for(int i = mark; i < str.length(); i++){
if(str.charAt(i) == '+')
continue;
if(str.charAt(i) < 48 || str.charAt(i) > 57)
return 0;
number = number*10+str.charAt(i)-48;
}
return mark==1?-number:number;
}

京公网安备 11010502036488号