
/**//*
* Created on 2005-5-13
* 利用正則表達(dá)式對(duì)數(shù)字進(jìn)行判斷
* 代碼來源自PIGO,有改動(dòng)
*/
package org.waityou.utils;

import java.util.regex.*;


/** *//**
* @author Ace
* thanks, pigo
*
*/

public class ValidationNumber
{

private static Pattern intnumPattern;

private static Pattern numberPattern;

private static Pattern doublenumPattern;


public static boolean isintNumber(String aString)
{
// 檢查一個(gè)字符串是否是整數(shù) 允許一個(gè)正負(fù)符號(hào)位


if (aString == null || aString.length() < 1)
{
return false;
}


if (intnumPattern == null)
{
intnumPattern = Pattern.compile("^[+-]?[\\d]+$");
}

return intnumPattern.matcher(aString).find();
}


public static boolean isNumber(String aString)
{
// 檢查一個(gè)字符串是否全部是數(shù)字


if (aString == null || aString.length() < 1)
{
return false;
}


if (numberPattern == null)
{
numberPattern = Pattern.compile("^[\\d]+$"); // "^[+-]?([\\d]+)|([\\d]+\\.[\\d]+)$"
}

return numberPattern.matcher(aString).find();
}


public static boolean isdoubleNumber(String aString)
{
//檢查一個(gè)字符串是否是浮點(diǎn)小數(shù),浮點(diǎn)小數(shù)至少一個(gè)數(shù)字開頭,允許一個(gè)正負(fù)符號(hào)位
//中間只出現(xiàn)一個(gè)小數(shù)點(diǎn),小數(shù)點(diǎn)之后至少一個(gè)數(shù)字


if (aString == null || aString.length() < 1)
{
return false;
}


if (doublenumPattern == null)
{
doublenumPattern = Pattern.compile("^[+-]?[\\d]+\\.[\\d]+$");
}
return doublenumPattern.matcher(aString).find();
}


public static void main(String[] args)
{
// 測(cè)試
String intnum1 = "-23423";
String intnum2 = "234";
String numstring = "234sdf";
String num1 = "234234";
String doublenum1 = "0.123456";
String doublenum2 = "-0.23";
String doublenum3 = ".123123";

System.out.println("" + isintNumber(intnum1));
System.out.println("" + isintNumber(intnum2));
System.out.println("" + isintNumber(numstring));

System.out.println("" + isNumber(num1));
System.out.println("" + isNumber(numstring));

System.out.println("" + isdoubleNumber(doublenum1));
System.out.println("" + isdoubleNumber(doublenum2));
System.out.println("" + isdoubleNumber(doublenum3));
System.out.println("" + isdoubleNumber(numstring));
}
}