题目描述:
将一个字符串转化为一个整数,实现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;
}
}