//参考jDK1.5的Integer.parseInt()源码 public class Solution { public int StrToInt(String str) { //如果字符为空字符串 if(str==null){ return 0; } //字符串长度 int length=str.length(); //字符串转整数值的大小限制 int limit=-Integer.MAX_VALUE; //定义变量存储每一位的字符转成的数值 int digit=0; //返回的结果 int result=0; int mulmin=0; //标志位判断该字符串是不是负数 boolean negative=false; //定义指向字符串中字符的指针 int index=0; //如果字符中有字符 if(length>0){ //判断第一个字符是不是'+'或者'-' char firstChar=str.charAt(0); if(firstChar<'0'){ if(firstChar=='-'){ negative=true; limit=Integer.MIN_VALUE; }else if(firstChar!='+'){ //不为'+' return 0; } if(length==1){ //第一个字符既不是'+'和'-' return 0; } //如果字符串第一个字符为'+'或者'-' index++; } mulmin=limit/10; //移动指针继续判断后面的字符 while(index<length){ digit=str.charAt(index++)-'0'; //判断digit是不是数字 if(digit<0||digit>9){ return 0; } //判断溢出 if(result<mulmin){ return 0; } result*=10; if(result<limit+digit){ return 0; } result-=digit; } }else{ return 0; } return negative? result:-result; } }