若为负数,则输出负数,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; }