美文网首页
leetcode的每日一题更新( String to Integ

leetcode的每日一题更新( String to Integ

作者: 今天是晴天 | 来源:发表于2017-09-27 10:58 被阅读0次

    题目简单的不行,就是将字符串转换成int类型的数字,但是弄了一个小时才弄出来,太多的边界情况,比如空串和null值不用说,前后有空格,超出int类型最大和最小范围就返回最大或最小,最前面有+-号怎么处理,字符串中如果有字符,从第一个字符开始算,前面不是字母的变成数字,遇到字母停止,如果第一个为字母直接返回0。附上代码:

    public int myAtoi(String str) {
            if(str==null || str.trim().equals(""))return 0;
            str=str.trim();
            boolean fu=false;
            if(str.charAt(0)=='+' && str.length()>1){
                str=str.substring(1, str.length());
            }else{
                if(str.charAt(0)=='-'&& str.length()>1) {
                str=str.substring(1, str.length());
                fu=true;
                }
            }
            String result="";
            for(int i=0;i<str.length();i++) {
                if(!(str.charAt(i)>47 && str.charAt(i)<58)) {
                    if(i==0)return 0;
                    break;
                }
                result+=str.charAt(i);
            }
            if(fu) {
                if(result.length()>10 || -Long.parseLong(result)<=Integer.MIN_VALUE) {
                    return Integer.MIN_VALUE;
                }else {
                    return -Integer.parseInt(result);
                }
            }else {
                if(result.length()>10 || Long.parseLong(result)>=Integer.MAX_VALUE) {
                    return Integer.MAX_VALUE;
                }else {
                    return Integer.parseInt(result);
                }
            }
        }
    

    相关文章

      网友评论

          本文标题:leetcode的每日一题更新( String to Integ

          本文链接:https://www.haomeiwen.com/subject/qinyextx.html