您的位置:首页 > 编程语言 > Java开发

java校验商品价格的正则表达式

2016-11-12 23:52 281 查看
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class regextest {
/* 题目:校验商品价格的正则表达式
* 目的:校验输入的商品价格:不能为(负数或001这样的数字),其他正整数或小数均为true
* 正则说明:"\\d\\.\\d*|[1-9]\\d*|\\d*\\.\\d*|\\d"
*  \    :为转义字符
*  \d   :表示0-9的数字
*  [1-9] : 1-9的数字
*  [^0] :非零的数字
*  *    :0次或多次
*  |    :选择符,分隔不同的匹配方案
*  .    :表示 "." 符号
*  [^-] : 非负号
* */
/**
* @param price 非String类型的数据,可以通过重载 拓展校验的方法
* @return
*/
public static boolean checkPrice(String price){
String regex = "\\d\\.\\d*|[1-9]\\d*|\\d*\\.\\d*|\\d";
Pattern pattern = Pattern.compile(regex); //将给定的正则表达式编译到模式中。
Matcher isNum = pattern.matcher(price);//创建匹配给定输入与此模式的匹配器。
boolean matches = isNum.matches();//如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息.
return matches;
}

public static void main(String[] args) {
//	              测试结果:
String orginal = "0";
//		 String orginal = "0.0"; true
//		 String orginal = "1"; true
//		 String orginal = "0.1";  true
//		 String orginal = "1.01"; true
//		 String orginal = "123"; true
//		 String orginal = "123.001";  true
//		 String orginal = "-1"; false
//		 String orginal = "-123.0"; false
//		 String orginal = "01"; false
//		 String orginal = "001"; false

boolean matches = checkPrice(orginal);
System.out.println(matches);//0 : true
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: