字符串数字验证(算法)

验证一个输入字符串是否为一个合法的数(正负数,小数,指数)


public boolean isNumber(String s)
{
	boolean res = false;
	if(s == null)
		return res;
	s = s.trim();
	if(s.equals("")) 
		return res;
	boolean hasSign = false,hasDot = false;
	Boolean hasExp = false,hasDigit = false;
	s = s.toLowerCase();	
	int len = s.length();
	for(int i = 0; i < s.length(); i++)
	{
		char c = s.charAt(i);
		if(!isValid(c)) return fasle;
		switch(c)
		{
		case '+':
		case '-':
			if((i != 0 && s.charAt(i - 1) != 'e') || i == len)
			{
				return false;
			}
			else
			{
				hasSign = true;
			}
			break;
		case '.':
			if(len == 1 || (len == 2 && hasSign) || hasExp || hasDot)
			{	
				return false;
			}
			else
			{
				hasDot = true;
			}
			break;
		case 'e':
			if( i == 0 || i == len - 1|| !hasDigit || hasExp)
			{
				return false;
			}
			else
			{
				return true;
			}
			break;
		default:
			hasDigit = true;
			break;
		}
	}
	return true;
}
public boolean isValid(char c)
{
if(c == '+' || c == '-' || c == '.' || c == 'e'|| (c > '0' && c < '9'))
	return true;
else	return false;
}







阅读更多
个人分类: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

字符串数字验证(算法)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭