字符串转化为整数-分步处理

将字符串转化为整数

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;
    }
}
全部评论

相关推荐

04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
昨天 21:59
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务