JAVA判断数字、整数的方法

定义的函数: 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;


public class JMath {


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

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


    
     public static boolean isNumericEx(String str) {
         try {
             Double.parseDouble(str);
             return true;
         }
         catch (NumberFormatException ex) {
             return false;
         }
     }

    
     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;
         }
     }
}
转自:http://www.hartech.cn/blog/blogview.asp?logID=73
------------------------------------正则表达式判断法------------------------------
//判断是否是整数
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;    
   }
}

你可能感兴趣的:(java)