字符串转化为整数-分步处理
将字符串转化为整数
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;
}
}
查看14道真题和解析
