把字符串转换成整数


题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0

示例1

输入

+2147483647
1a33

输出

2147483647
0

这道题我感觉说的很模糊,不是很清楚如果输入"12+23"或"5e2"这种形式的字符串应该输出什么。所以只是简单的实现

	public int StrToInt(String str) {
		if (str.equals("") || str.length() == 0)
			return 0;
		char[] a = str.toCharArray();
		int fuhao = 0;
		if (a[0] == '-')
			fuhao = 1;
		int sum = 0;
		for (int i = fuhao; i < a.length; i++)
		{
			if (a[i] == '+')
				continue;
			if (a[i] < 48 || a[i] > 57)
				return 0;
			//123 可以 是1*10*10+2*10+3
			sum = sum * 10 + a[i] - 48;
		}
		return fuhao == 0 ? sum : sum * -1;
	}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM