/**//*
* Created on 2005-5-13
* 利用正则表达式对数字进行判断
* 代码来源自PIGO,有改动
*/
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) {
// 检查一个字符串是否是整数 允许一个正负符号位
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) {
// 检查一个字符串是否全部是数字
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) {
//检查一个字符串是否是浮点小数,浮点小数至少一个数字开头,允许一个正负符号位
//中间只出现一个小数点,小数点之后至少一个数字
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) {
// 测试
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));
}
}