热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java获取数字_java提取字符串数字,Java获取字符串中的数字

importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.lang.

importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.lang.StringUtils;/*** 正则表达式工具类

**/

public classRegUtils {/*** 邮箱*/

public static final String EMAIL = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";/*** 手机号码*/

public static final String PHONE = "^(1[3-9]([0-9]{9}))$";/*** 仅中文*/

public static final String CHINESE = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$";/*** 整数*/

public static final String INTEGER = "^-?[1-9]\\d*$";/*** 数字*/

public static final String NUMBER = "^([+-]?)\\d*\\.?\\d+$";/*** 正整数*/

public static final String INTEGER_POS = "^[1-9]\\d*$";/*** 浮点数*/

public static final String FLOAT = "^([+-]?)\\d*\\.\\d+$";/*** 正浮点数*/

public static final String FLOAT_POS = "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$";/*** 是否为正整数数字,包括0(00,01非数字)*/

public static final String INTEGER_WITH_ZERO_POS = "^(([0-9])|([1-9]([0-9]+)))$";/*** 是否为整数数字,包括正、负整数,包括0(00,01非数字)*/

public static final String NUMBER_WITH_ZERO = "^((-)?(([0-9])|([1-9]([0-9]+))))$";/*** 是否为数字字符串*/

public static final String NUMBER_TEXT = "^([0-9]+)$";/*** 数字(整数、0、浮点数),可以判断是否金额,也可以是负数*/

public static final String NUMBER_ALL = "^((-)?(([0-9])|([1-9][0-9]+))(\\.([0-9]+))?)$";/*** QQ,5-14位*/

public static final String QQ = "^[1-9][0-9]{4,13}$";/*** IP地址*/

public static final String IP = "((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))";/*** 邮编*/

public static final String POST_CODE = "[1-9]\\d{5}(?!\\d)";/*** 普通日期*/

public static final String DATE = "^[1-9]\\d{3}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3[0-1]))$";/*** 复杂日期,不区分闰年的2月

* 日期格式:2017-10-19

* 或2017/10/19

* 或2017.10.19

* 或2017年10月19日

* 最大31天的月份:(((01|03|05|07|08|10|12))-((0[1-9])|([1-2][0-9])|(3[0-1])))

* 最大30天的月份:(((04|06|11))-((0[1-9])|([1-2][0-9])|(30)))

* 最大29天的月份:(02-((0[1-9])|([1-2][0-9])))*/

public static final String DATE_COMPLEX = "^(([1-2]\\d{3})(-|/|.|年)((((01|03|05|07|08|10|12))(-|/|.|月)((0[1-9])|([1-2][0-9])|(3[0-1])))|(((04|06|11))(-|/|.|月)((0[1-9])|([1-2][0-9])|(30)))|(02-((0[1-9])|([1-2][0-9]))))(日)?)$";/*** 复杂的日期,区分闰年的2月

* 这个日期校验能区分闰年的2月,格式如下:2017-10-19

* (见:http://www.jb51.net/article/50905.htm)

* ^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$*/

public static final String DATE_COMPLEX_LEAP_YEAR = "^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$";/*** 正则表达式校验,符合返回True

*@paramregex 正则表达式

*@paramcontent 校验的内容

*@return

*/

public static booleanisMatch(String regex, CharSequence content){returnPattern.matches(regex, content);

}/*** 校验手机号码

*@parammobile

*@return

*/

public static final booleanisMoblie(String mobile){boolean flag = false;if (null != mobile && !mobile.trim().equals("") && mobile.trim().length() == 11) {

Pattern pattern=Pattern.compile(PHONE);

Matcher matcher=pattern.matcher(mobile.trim());

flag=matcher.matches();

}returnflag;

}/*** 校验邮箱

*@paramvalue

*@return

*/

public static final booleanisEmail(String value){boolean flag = false;if (null != value && !value.trim().equals("")) {

Pattern pattern=Pattern.compile(EMAIL);

Matcher matcher=pattern.matcher(value.trim());

flag=matcher.matches();

}returnflag;

}/*** 校验密码

*@parampassword

*@return长度符合返回true,否则为false*/

public static final booleanisPassword(String password){boolean flag = false;if (null != password && !password.trim().equals("")) {

password&#61;password.trim();if(password.length() >&#61; 6 && password.length() <&#61; 30){return true;

}

}returnflag;

}/*** 校验手机验证码

*&#64;paramvalue

*&#64;return符合正则表达式返回true&#xff0c;否则返回false*/

public static final booleanisPhoneValidateCode(String value){boolean flag &#61; false;if (null !&#61; value && !value.trim().equals("")) {

Pattern pattern&#61; Pattern.compile("^8\\d{5}$");

Matcher matcher&#61;pattern.matcher(value.trim());

flag&#61;matcher.matches();

}returnflag;

}/*** 判断是否全部大写字母

*&#64;paramstr

*&#64;return

*/

public static booleanisUpperCase(String str){if(StringUtils.isEmpty(str)){return false;

}

String reg&#61; "^[A-Z]$";returnisMatch(reg,str);

}/*** 判断是否全部小写字母

*&#64;paramstr

*&#64;return

*/

public static booleanisLowercase(String str){if(StringUtils.isEmpty(str)){return false;

}

String reg&#61; "^[a-z]$";returnisMatch(reg,str);

}/*** 是否ip地址

*&#64;paramstr

*&#64;return

*/

public static booleanisIP(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(IP, str);

}/*** 符合返回true&#xff0c;区分30、31天和闰年的2月份(最严格的校验)&#xff0c;格式为2017-10-19

*&#64;paramstr

*&#64;return

*/

public static booleanisDate(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(DATE_COMPLEX_LEAP_YEAR, str);

}/*** 简单日期校验&#xff0c;不那么严格

*&#64;paramstr

*&#64;return

*/

public static booleanisDateSimple(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(DATE, str);

}/*** 区分30、31天&#xff0c;但没有区分闰年的2月份

*&#64;paramstr

*&#64;return

*/

public static booleanisDateComplex(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(DATE_COMPLEX, str);

}/*** 判断是否为数字字符串&#xff0c;如0011&#xff0c;10101&#xff0c;01

*&#64;paramstr

*&#64;return

*/

public static booleanisNumberText(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(NUMBER_TEXT, str);

}/*** 判断所有类型的数字&#xff0c;数字(整数、0、浮点数)&#xff0c;可以判断是否金额&#xff0c;也可以是负数

*&#64;paramstr

*&#64;return

*/

public static booleanisNumberAll(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(NUMBER_ALL, str);

}/*** 是否为正整数数字&#xff0c;包括0(00&#xff0c;01非数字)

*&#64;paramstr

*&#64;return

*/

public static booleanisIntegerWithZeroPos(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(INTEGER_WITH_ZERO_POS, str);

}/*** 是否为整数&#xff0c;包括正、负整数&#xff0c;包括0(00&#xff0c;01非数字)

*&#64;paramstr

*&#64;return

*/

public static booleanisIntegerWithZero(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(NUMBER_WITH_ZERO, str);

}/*** 符合返回true,QQ&#xff0c;5-14位

*&#64;paramstr

*&#64;return

*/

public static booleanisQQ(String str){if(StringUtils.isEmpty(str)){return false;

}returnisMatch(QQ, str);

}public static voidmain(String[] args) {

System.out.println(isMoblie("13430800244"));

System.out.println(isMoblie("17730800244"));

System.out.println(isMoblie("17630800244"));

System.out.println(isMoblie("14730800244"));

System.out.println(isMoblie("18330800244"));

System.out.println(isMoblie("19330800244"));

System.out.println(isMoblie("1333000244"));

}

}



推荐阅读
  • 本文旨在构建一个JavaScript函数,用于对用户输入的电子邮件地址和密码进行有效性验证。该函数将确保输入符合标准格式,并检查密码强度,以提升用户账户的安全性。通过集成正则表达式和条件判断语句,该方法能够有效防止常见的输入错误,同时提供即时反馈,改善用户体验。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
  • PHP正则表达式主要用于字符串的模式分割、匹配、查找及替换操作。使用正则表达式在某些简单的环境下可能效率不高,因此如何更好的使用PHP正则表达式需要综合考虑。PHP正则表达式的定义 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 如何利用正则表达式(regexp)实现高效的模式匹配?本文探讨了正则表达式在编程中的应用,并分析了一个示例程序中存在的问题。通过具体的代码示例,指出该程序在定义和使用正则表达式时的不当之处,旨在帮助读者更好地理解和应用正则表达式技术。 ... [详细]
  • 利用Java开发功能完备的电话簿应用程序,支持添加、查询与删除操作
    本研究基于Java语言开发了一款功能全面的电话簿应用程序,实现了与数据库的高效连接。该应用不仅支持添加、查询和删除联系人信息,还具备输出最大和最小ID号的功能,并能够对用户输入的ID号进行有效性验证,确保数据的准确性和完整性。详细实现方法可参阅相关文档。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • MVVM架构~mvc,mvp,mvvm大话开篇
    返回目录百度百科的定义:MVP是从经典的模式MVC演变而来,它们的基本思想有相通的地方:ControllerPresenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模 ... [详细]
  • 一、媒介  Koa为了坚持本身的简约,并没有绑缚中间件。然则在现实的开辟中,我们须要和五花八门的中间件打交道,本文将要剖析的是常常用到的路由中间件—koa-router。  假如你 ... [详细]
  • 在本文中,我们将详细介绍如何构建一个用于自动回复消息的XML类。当微信服务器接收到用户消息时,该类将生成相应的自动回复消息。以下是具体的代码实现:```phpclass We_Xml { // 代码内容}```通过这个类,开发者可以轻松地处理各种消息类型,并实现高效的自动回复功能。我们将深入探讨类的各个方法和属性,帮助读者更好地理解和应用这一技术。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
author-avatar
文竹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有