zoukankan      html  css  js  c++  java
  • Valid Number,判断是否为合法数字

    问题描述:

    Validate if a given string is numeric.

    Some examples:
    "0" => true
    " 0.1 " => true
    "abc" => false
    "1 a" => false
    "2e10" => true

    public boolean isNumber(String s)
    	{
            s = s.trim();
            if (s.length() == 0) return false;
            boolean hasE = false;
            boolean hasDot = false;
            boolean hasNumber = false;
            
            for (int i = 0; i < s.length(); i++) 
            {
                // e cannot be the first character
                if (i == 0 && s.charAt(i) == 'e') return false;
                if (s.charAt(i) == 'e') {
                    // e cannot be replicated nor placed before number
                    if (hasE == true || hasNumber == false) {
                        return false;
                    } else {
                    	hasE = true;
                    }
                } 
                
                if (s.charAt(i) == '.') {
                    // '.' cannot be replicated nor placed after 'e'
                	if (hasDot == true || hasE == true) {
                    	return false;
                    } else {
                    	hasDot = true;
                    }
                }
                // the sign can be placed at the beginning or after 'e'
                if (i != 0 && s.charAt(i - 1) != 'e' && (s.charAt(i) == '+' || s.charAt(i) == '-')) return false;
                
                // no other chacraters except '+', '-', '.', and 'e'
                if ((s.charAt(i) > '9' || s.charAt(i) < '0') && s.charAt(i) != '+' && s.charAt(i) != '-' && s.charAt(i) != '.' && s.charAt(i) != 'e')
                return false;  
                
                // check whether numbers are included.
                if (s.charAt(i) <= '9' && s.charAt(i) >= '0')
                {
                    hasNumber = true;
                }
            }
            // '+', '-', and 'e' cannot be the last character
            if (s.charAt(s.length() - 1) == '-' || s.charAt(s.length() - 1) == '+' || s.charAt(s.length() - 1) == 'e') return false;
    
            return hasNumber;
        }
    }
    
  • 相关阅读:
    归并排序法实现
    HuffmanTree
    快速排序法的实现
    随机数发生器说明
    装箱问题改进
    瞬间判断2的幂
    weblogic删除域
    【转】Mock方法介绍
    Oracle 11G空表无法导出处理
    深入理解JVM虚拟机(一):JVM运行时数据区
  • 原文地址:https://www.cnblogs.com/masterlibin/p/5776754.html
Copyright © 2011-2022 走看看