题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输入
+2147483647 1a33
输出
2147483647 0
/** * * @author gentleKay * 题目描述 * 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0), * 要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 * 输入描述: * 输入一个字符串,包括数字字母符号,可以为空 * 输出描述: * 如果是合法的数值表达则返回该数字,否则返回0 * 示例1 * 输入 * +2147483647 * 1a33 * 输出 * 2147483647 * 0 */ public class Main48 { public static void main(String[] args) { // TODO Auto-generated method stub String str = "-13246+546+"; System.out.println(Main48.StrToInt(str)); } public static int StrToInt(String str) { if (str.length() == 0 || str.equals("")) { return 0; } char[] ch = str.toCharArray(); int symbol = 0; if (ch[0] == '-') { symbol = 1; } int sum = 0; for (int i=symbol;i<ch.length;i++) { if (ch[i] == '+') { continue; } if (ch[i] < 48 || ch[i] > 57) { return 0; } sum = sum*10 + ch[i]-48; } return symbol == 0 ? sum : sum * -1; } }