java判断数值是否为数字或整数及对应的正则表达式

发布时间:2018-06-30 23:08:12   来源:文档文库   
字号:

定义的函数: isNumeric(String) 是判断数字的,包括小数

支持格式:

"33" "+33" "033.30" "-.33" ".33" " 33." " 000.000 "

isInteger(String) 仅是用来判断整数的

支持格式:

"33" "003300" "+33" " -0000 "



上面两函数分别各有两种方法可以实现

一、一个个字符判断下去(效率高些)

下面的 iisNumeric(String)isInteger(String)

二、利用异常:用Integer.parseInt(str)Double.parseDouble(str)解析字符串,若非数字则抛出异常

下面的 isNumericEx(String)isIntegerEx(String)--其中isIntegerEx(String)最多支持到十位

package hartech;

/**

   * @author

   * @version 1.0

   */

public class JMath {



     /**

       * support Numeric format:

       * "33" "+33" "033.30" "-.33" ".33" " 33." " 000.000 "

       * @param str String

       * @return boolean

       */

     public static boolean isNumeric(String str) {

         int begin = 0;

         boolean once = true;

         if (str == null || str.trim().equals("")) {

             return false;

         }

         str = str.trim();

         if (str.startsWith("+") || str.startsWith("-")) {

             if (str.length() == 1) {

                 // "+" "-"

                 return false;

             }

             begin = 1;

         }

         for (int i = begin; i < str.length(); i++) {

             if (!Character.isDigit(str.charAt(i))) {

                 if (str.charAt(i) == '.' && once) {

                     // '.' can only once

                     once = false;

                 }

                 else {

                     return false;

                 }

             }

         }

         if (str.length() == (begin + 1) && !once) {

             // "." "+." "-."

             return false;

         }

         return true;

     }

     /**

       * support Integer format:

       * "33" "003300" "+33" " -0000 "

       * @param str String

       * @return boolean

       */

     public static boolean isInteger(String str) {

         int begin = 0;

         if (str == null || str.trim().equals("")) {

             return false;

         }

         str = str.trim();

         if (str.startsWith("+") || str.startsWith("-")) {

             if (str.length() == 1) {

                 // "+" "-"

                 return false;

             }

             begin = 1;

         }

         for (int i = begin; i < str.length(); i++) {

             if (!Character.isDigit(str.charAt(i))) {

                 return false;

             }

         }

         return true;

     }



     /**

       * use Exception

       * support Numeric format:

       * "33" "+33" "033.30" "-.33" ".33" " 33." " 000.000 "

       * @param str String

       * @return boolean

       */

     public static boolean isNumericEx(String str) {

         try {

             Double.parseDouble(str);

             return true;

         }

         catch (NumberFormatException ex) {

             return false;

         }

     }

     /**

       * use Exception

       * support less than 11 digits(<11)

       * support Integer format:

       * "33" "003300" "+33" " -0000 " "+ 000"

       * @param str String

       * @return boolean

       */

     public static boolean isIntegerEx(String str) {

         str = str.trim();

         try {

             Integer.parseInt(str);

             return true;

         }

         catch (NumberFormatException ex) {

             if (str.startsWith("+")) {

                 return isIntegerEx(str.substring(1));

             }

             return false;

         }

     }

}



------------------------------------正则表达式判断法------------------------------

//判断是否是整数

public static boolean isNumeric(String s)

{

   if((s != null)&&(s!=""))

    return s.matches("^[0-9]*$");

   else

    return false;

}

//判断传递来的是否是数字

public static int checkID(String s)

{

   if((s == null)||(s.length() == 0)||!s.matches("^[0-9]*$"))

   {

    return 0;

   }

   else

   {

    if(s.length() < 10)

    {

     return Integer.parseInt(s);

      }

      else

      {

        return 0;

      }

   }

}

//判断传递来的是否是字符串

   public static String checkString(String s)

{

   if((s == null)||(s.length() == 0)||s.matches("^[0-9]*$"))

   {

    return "";

   }

   else

   {

    return s;   

   }

}

本文来源:https://www.2haoxitong.net/k/doc/9bad0b4ec850ad02de804115.html

《java判断数值是否为数字或整数及对应的正则表达式.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式