正则表达式_判断金额是否为数字(且是2位有效数字)

本文介绍了一个用于验证金额字符串是否为合法数字的正则表达式方法,该方法确保输入的数字为两位有效数字,并支持负数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则表达式_判断金额是否为数字(且是2位有效数字)

private static boolean isNumber(String str) {
  String regex = "^([0-9]+(.[0-9]{1,2})?)|(-[0-9]+(.[0-9]{1,2})?)$";
  Pattern pattern = Pattern.compile(regex);
  Matcher match = pattern.matcher(str);
  // match.find()
  return match.matches();
 }

public static void main(String[] args) throws Exception{
  UpdatePayModeDetailDataProvider provider = new UpdatePayModeDetailDataProvider();
  
 /* Map params = new HashMap();
  params.put("staff_no", "999992176");     //受理工号
  params.put("cust_order_id", "439148");  //客户订单iD
  params.put("lan_id", "4");              //本地网ID
  Map retMap = (Map)provider.getData(params);
  System.out.println("----------返回报文="+retMap);
  
 */
  System.out.println("333333333333="+isNumber("12.301"));
  System.out.println("222222222222="+isNumber("12.3"));
  System.out.println("333333333="+isNumber("1288888888888888888888"));
  System.out.println("333333333="+isNumber("012222"));
 }

转载于:https://www.cnblogs.com/zhxn/p/7007301.html

### 正则表达式匹配金额最多带有两位小数 对于匹配金额并确保其最多带有两位小数的情况,可以采用如下正则表达式: ```regex /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/ ``` 此模式能够有效验证金额数值,既支持不带小数部分的整数形式,也兼容含有不超过两位的小数表示法[^1]。 具体解析如下: - `^` 和 `$` 分别代表字符串起始与结束置,确保整个输入完全符合指定格式; - `[1-9][0-9]*` 部分用来捕捉任何非零开头的整数序列; - `(0\.\d{1,2}` | `[1-9][0-9]*\.\d{1,2})` 则负责处理含有一两位小数的情形,其中前者针对以‘0.’为首的特殊情况而设计,后者适用于一般性的非零前缀情况[^2]。 另外一种实现方式同样满足需求: ```regex ^((\\d+)|(0\\.\\d{1,2})|([1-9]\\d*\\.\\d{1,2}))$ ``` 这段代码不仅限定了小数点后的长度为一到两个字符,还特别考虑到了可能存在的前置'0.'情形以及常规意义上的非零数字加上可选的小数部分[^4]。 为了更直观展示如何应用上述任一正则表达式来检验给定字符串是否合法表示了一个符合条件的金额值,下面给出一段简单的Java函数作为示范: ```java import java.util.regex.Pattern; import java.util.regex.Matcher; public class AmountValidator { private static final Pattern AMOUNT_PATTERN = Pattern.compile("^(([1-9][0-9]*)|(([0]\\.[0-9]{1,2}|[1-9][0-9]*\\.[0-9]{1,2})))$"); /** * 检查传入参数req是否为有效的金额格式. * * @param req 待检测的金额字符串 * @return 如果req是有效的返回true;否则false */ public static boolean isValidAmount(String req){ Matcher matcher = AMOUNT_PATTERN.matcher(req); return matcher.matches(); } } ``` 通过调用`isValidAmount()`方法即可轻松完成对目标字符串的有效性判断操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值