您的位置:首页 > Web前端

剑指offer--把字符串转换成整数

2017-08-07 19:33 225 查看
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。如果是非法的整数字符,比如1aa3,则返回0。

分类:字符串

解法1:注意一些特殊情况的要求就好了。

[java] view
plain copy

public int StrToInt(String str) {  

        char[] chars = str.toCharArray();  

        long sum = 0;  

        int max = 0x7FFFFFFF;  

        int min = 0x80000000;  

          

        boolean flag = true;  

        int i=1;  

        if(chars.length==0) return 0;         

        if(chars[0]!='+'){  

            if(chars[0]=='-') flag = false;  

            else if(!(chars[0]>='0'&&chars[0]<='9')) return 0;  

            else i = 0;  

        }  

        for(;i<chars.length;i++){  

            if(chars[i]>='0'&&chars[i]<='9'){  

                if(sum*10+chars[i]-'0'-1==max && !flag){  

                    return (int) -(sum*10+chars[i]-'0');  

                }  

                if(!(sum*10+chars[i]-'0'>=min && sum*10+chars[i]-'0'<=max)){  

                    return 0;  

                }  

                sum = sum*10+chars[i]-'0';  

            }else{  

                return 0;  

            }  

        }  

        return (int) (flag?sum:-sum);  

    }  

原文链接  http://write.blog.csdn.net/postedit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: