将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入例子:
+2147483647 1a33
输出例子:
2147483647 0
public class Solution { public int StrToInt(String str) { int sign = 1; int len = str.length(); int num = 0; if(len<1) return 0; if(str.charAt(0) == '-') sign = -1; for(int i = 1;i<len;i++){ if(str.charAt(i)<'0'||str.charAt(i)>'9') return 0; } if(str.charAt(0) != '+' && str.charAt(0) != '-'){ for(int i = 0;i<len;i++){ int num1 = Character.getNumericValue(str.charAt(i)); int num2 = (int)Math.pow(10,len-i-1); num = num + num1*num2; } return num; } else if(str.charAt(0) == '+'){ for(int i = 1;i<len;i++){ int num1 = Character.getNumericValue(str.charAt(i)); int num2 = (int)Math.pow(10,len-i-1); num = num + num1*num2; } return num; } else if(str.charAt(0) == '-'){ for(int i = 1;i<len;i++){ int num1 = Character.getNumericValue(str.charAt(i)); int num2 = (int)Math.pow(10,len-i-1); num = num + num1*num2; } return num*-1; } return 0; } }