天天看点

Java判断是不是数字

  • 正则判断条件:
  1. 数字:

    ^[0-9]*$

  2. n位的数字:

    ^\d{n}$

  3. 至少n位的数字:

    ^\d{n,}$

  4. m-n位的数字:

    ^\d{m,n}$

  5. 零和非零开头的数字:

    ^(0|[1-9][0-9]*)$

  6. 非零开头的最多带两位小数的数字:

    ^([1-9][0-9]*)+(.[0-9]{1,2})?$

  7. 带1-2位小数的正数或负数:

    ^(\-)?\d+(\.\d{1,2})?$

  8. 正数、负数、和小数:

    ^(\-|\+)?\d+(\.\d+)?$

  9. 有两位小数的正实数:

    ^[0-9]+(.[0-9]{2})?$

  10. 有1~3位小数的正实数:

    ^[0-9]+(.[0-9]{1,3})?$

  11. 非零的正整数:

    ^[1-9]\d*$

    ^([1-9][0-9]*){1,3}$

    ^\+?[1-9][0-9]*$

  12. 非零的负整数:

    ^\-[1-9][]0-9"*$

    ^-[1-9]\d*$

  13. 非负整数:

    ^\d+$

    ^[1-9]\d*|0$

  14. 非正整数:

    ^-[1-9]\d*|0$

    ^((-\d+)|(0+))$

  15. 非负浮点数:

    ^\d+(\.\d+)?$

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

  16. 非正浮点数:

    ^((-\d+(\.\d+)?)|(0+(\.0+)?))$

    ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

  17. 正浮点数:

    ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

    ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

  18. 负浮点数:

    ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$

    ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

  19. 浮点数:

    ^(-?\d+)(\.\d+)?$

    ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

  • 代码:
    /**
      * 判断是不是数字
      * @param unknownNum
      * @return 是或不是数字
      */
      public boolean isNumeric(String unknownNum){
      	Pattern pattern = Pattern.compile("[0-9]+");
      	Matcher isNum = pattern.matcher(unknownNum);
      	if( !isNum.matches() ){
      		return false;
      	}
      	return true;
      }