【剑指offer】把字符串转换为数字--java实现
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0. 解析:本题需要额外知识点,如数字的ASCII为48-57.将字符0-9转换为数字,则需要计算c=c-‘0’。 另外字符串转换为数组的代码为 char[] array=str.toCharArray();
public class Solution { public int StrToInt(String str) { if(str==null)return 0; int sum=0; //当前的数 char[] array=str.toCharArray(); boolean minus=false; for(int i=0;i<array.length;i++){ if(i==0&&array[i]==-){ minus=true; }else if(i==0&&array[i]==+){ minus=false; }else{ int a=array[i]-0; //得到当前的数字 if (a<0||a>9)return 0; //如果非数字,直接返回0 sum=(minus==false)?sum*10+a:sum*10-a; if((!minus&&sum>Integer.MAX_VALUE)|| (minus&&sum<Integer.MIN_VALUE))return 0; //如果sum大于int的最大值,或者小于最小值,返回0 } } return sum; } }
上一篇:
IDEA上Java项目控制台中文乱码