关闭

字符串数字验证(算法)

194人阅读 评论(0) 收藏 举报
分类:

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


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;
}







0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23326次
    • 积分:1143
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:7篇
    • 译文:49篇
    • 评论:1条
    文章分类
    最新评论