51.把字符串转化为整数

题目描述:

  将一个字符串转化为一个整数,实现Integer.valueOf(String)的功能,如果对于不满足要求的字符串,比如字符串中出现字母,或者其他不是数字形式的字符串,输出0。

  例如:+123456 输出:123456

  123a 输出:0

思路分析:

  这道题主要考虑处理处理字符串时的一些特殊情况,比如输入字符串为“ ”,这种形式,或者字符串的第一个字符是否是“+”和“-”字符。

代码:

public class Test{
    public int stringToInteger(String s){
        if(s==null||s.length()==0)
            return 0;
        if(s.trim().equals(""))  //如果输入的字符串为“   ”
            return 0;
        boolean flag=true;  //用来判断数字的正负
        if(s.charAt(0)=='-')
            flag=false;
        int sum=0;
        for(int i=(s.charAt(0)=='+'||s.charAt(0)=='-')?1:0;i<s.length();i++){  //如果字符串的第一个字符是正负号,那么我们从第二个元素开始遍历,如果不是就从第一个元素遍历。
            if(s.charAt(i)>'0'&&s.charAt(i)<'9'){
                sum=sum*10+(s.charAt(i)-'0');
            }else{
                return 0;
            }
        }
        if(flag==true)
            return sum;
        else
            return -sum;
    }
}
原文地址:https://www.cnblogs.com/yjxyy/p/10935647.html