题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输出
复制2147483647
题目链接:
未AC。
用例存在错误。
不通过
int的最小值为
-2147483648
public class Solution { public int StrToInt(String str) { if("".equals(str)){ return 0; } char[] arr = str.toCharArray(); int number = 0; boolean flag = true; for(int i =0;i<arr.length;i++){ if(i == 0 &&(arr[i] == '-' ||arr[i] == '+')){ if(arr[i] == '-'){ flag = false; }else if(arr[i] == '+'){ }else { return 0; } }else if(arr[i] <= '9' && arr[i] >= '0'){ number = number * 10 + (arr[i]-'0'); }else{ return 0; } } if(str.charAt(0) == '+' || str.charAt(0) == '-'){ if(!str.substring(1).equals(""+number)&& number != -2147483648){ return 0; } }else if(!str.equals(""+number)){ return 0; } return flag?number:(-number); } }