字符串转化为整数-分步处理
将字符串转化为整数
http://www.nowcoder.com/questionTerminal/44d8c152c38f43a1b10e168018dcc13f
核心思想
1.找到首个不为零的首位 记为start
2.符号的判断量记为sign 默认为1 遇到- sign=-sign即可
3.非法字符判断 遇到asicii编码在0-9之外 直接break输出即可
4.输入为0 判断为null或者是空串
import java.util.*; public class Solution { public int atoi (String str) { Stack<Integer> st = new Stack<Integer>(); int output=0; int start=0; int sign=1; int post=0; char[]input=null; if(str==null||str.length()==0) return 0; else input=str.toCharArray(); while(input[start]>57||input[start]<=48){ if(input[start]==45) sign=-sign; start++; } for(int i=start;i<input.length;i++){ if(input[i]>57||input[i]<48) break; st.push( Integer.parseInt(String.valueOf(input[i]))); } while(!st.isEmpty()){ output+=sign*st.pop()*Math.pow(10,post); post++; } return output; } }