精华内容
下载资源
问答
  • java 获取字符串中所有连续数字 package com.zhw.common.utils; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ...

    java 获取字符串中所有的连续数字

    package com.zhw.common.utils;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    
    public class StringUtils
    {
        /**
         * 截取字符串中的数字
         * @param content
         * @return
         */
        public static List<String> getNumberList(String content){
            List<String> numList = new ArrayList<>();
            Pattern p = Pattern.compile("\\d{1,}");
            Matcher m = p.matcher(content);
            while(m.find()) {
                numList.add(m.group());
            }
            return numList;
        }
    
    
        public static void main(String[] args) {
            System.out.println(getNumberList("\"充50元送10元\"或者\"充100元送25元\""));
        }
    
    }
    
    展开全文
  • importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.lang.StringUtils;/*** 正则表达式工具类**/public classRegUtils {/*** 邮箱*/public static final String EMAIL = "^\\w+...

    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=password.trim();if(password.length() >= 6 && password.length() <= 30){return true;

    }

    }returnflag;

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

    *@paramvalue

    *@return符合正则表达式返回true,否则返回false*/

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

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

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

    flag=matcher.matches();

    }returnflag;

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

    *@paramstr

    *@return

    */

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

    }

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

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

    *@paramstr

    *@return

    */

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

    }

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

    }/*** 是否ip地址

    *@paramstr

    *@return

    */

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

    }returnisMatch(IP, str);

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

    *@paramstr

    *@return

    */

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

    }returnisMatch(DATE_COMPLEX_LEAP_YEAR, str);

    }/*** 简单日期校验,不那么严格

    *@paramstr

    *@return

    */

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

    }returnisMatch(DATE, str);

    }/*** 区分30、31天,但没有区分闰年的2月份

    *@paramstr

    *@return

    */

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

    }returnisMatch(DATE_COMPLEX, str);

    }/*** 判断是否为数字字符串,如0011,10101,01

    *@paramstr

    *@return

    */

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

    }returnisMatch(NUMBER_TEXT, str);

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

    *@paramstr

    *@return

    */

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

    }returnisMatch(NUMBER_ALL, str);

    }/*** 是否为正整数数字,包括0(00,01非数字)

    *@paramstr

    *@return

    */

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

    }returnisMatch(INTEGER_WITH_ZERO_POS, str);

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

    *@paramstr

    *@return

    */

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

    }returnisMatch(NUMBER_WITH_ZERO, str);

    }/*** 符合返回true,QQ,5-14位

    *@paramstr

    *@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"));

    }

    }

    展开全文
  • ================================ ©Copyright蕃薯耀 2020-01-17 ...具体的方法如下: /** * 把字符串数字类型的数字取出来(只取遇到非数字字符前,包括空格) * @param str * <li>"1-0我5013我24a5c6...

    ================================

    ©Copyright 蕃薯耀 2020-01-17

    https://www.cnblogs.com/fanshuyao/

     具体的方法如下:

    /**
         * 把字符串数字类型的数字取出来(只取遇到非数字字符前,包括空格)
         * @param str
         * <li>"1-0我5013我24a5c6"    》 1</li>
         * <li>"10  5 013我24a 5c6"  》 10</li>
         * <li>"105013我24a5c6"      》 105013</li>
         * <li>"000"                 》 000</li>
         * <li>"00010123600"         》 00010123600</li>
         * <li>"好20我1a2b"           》  空字符串</li>
         * @return
         */
        public static String getPrefixNumberText(String str){
            if(StringUtils.isBlank(str)){
                throw new RuntimeException("参数str不能为空");
            }
            StringBuffer number = new StringBuffer("");
            
            String[] strArray = str.split("");
            for (int i=1; i<strArray.length; i++) {
                if(RegUtils.isNumberText(strArray[i])){
                    number.append(strArray[i]);
                }else{
                    break;
                }
            }
            return number.toString();
        }
        
        
        /**
         * 把字符串数字类型的数字取出来(只取遇到非数字字符前,但不包括空格)
         * @param str
         * <li>"1-0我5013我24a5c6"    》 1</li>
         * <li>"10  5 013我24a 5c6"  》 105013</li>
         * <li>"105013我24a5c6"      》 105013</li>
         * <li>"000"                 》 000</li>
         * <li>"00010123600"         》 00010123600</li>
         * <li>"00010123我600"        》 00010123</li>
         * @return
         */
        public static String getPrefixNumberTextIgnoreSpace(String str){
            if(StringUtils.isBlank(str)){
                throw new RuntimeException("参数str不能为空");
            }
            StringBuffer number = new StringBuffer("");
            
            String[] strArray = str.split("");
            for (String string : strArray) {
                if(!StringUtils.isBlank(string)){
                    if(RegUtils.isNumberText(string)){
                        number.append(string);
                    }else{
                        break;
                    }
                }
            }
            return number.toString();
        }
        
        
        /**
         * 把字符串数字类型的所有数字取出来
         * @param str
         * <li>"1-000我10123我60#0"       》 100010123600</li>
         * <li>"00010-+123我600"         》 00010123600</li>
         * <li>"我是2019我600"            》 2019600</li>
         * <li>"我是20 -19我    600"         》 2019600</li>
         * @return
         */
        public static String getNumberText(String str){
            if(StringUtils.isBlank(str)){
                throw new RuntimeException("参数str不能为空");
            }
            StringBuffer number = new StringBuffer("");
            
            String[] strArray = str.split("");
            for (String string : strArray) {
                if(!StringUtils.isBlank(string) && RegUtils.isNumberText(string)){
                    number.append(string);
                }
            }
            return number.toString();
        }
        
        
        /**
         * 把字符串数字类型的数字取出来(只取遇到非数字字符前,不包括空格)转换成数字
         * @param str
         * <li>"1-0我5013我24a5c6"    》 1</li>
         * <li>"10  5 013我24a 5c6"  》 105013</li>
         * <li>"105013我24a5c6"      》 105013</li>
         * <li>"000"                 》 0</li>
         * <li>"00010123600"         》 10123600</li>
         * @return
         */
        public static long getPrefixNumber(String str){
            String number = getPrefixNumberTextIgnoreSpace(str);
            if(StringUtils.isBlank(number)){
                return 0;
            }
            
            //去掉前面为0的,如0099变成99
            String[] texts = number.split("");
            StringBuffer numbers = new StringBuffer("");
            for (String text : texts) {
                if(numbers.length() < 1){
                    if(text == "0"){
                        continue;
                    }
                }
                numbers.append(text);
            }
            
            if(numbers.length() < 1){
                return 0;
            }
            return Long.parseLong(numbers.toString());
        }
        
        
        /**
         * 把字符串数字类型的数字取出来转换成数字
         * @param str
         * <li>"1-000我10123我60#0"   》 100010123600</li>
         * <li>"00010-+123我600"      》 10123600</li>
         * <li>"我是2019我600"         》 2019600</li>
         * <li>"我是20 -19我    600"     》 2019600</li>
         * @return
         */
        public static long getNumber(String str){
            String number = getNumberText(str);
            if(StringUtils.isBlank(number)){
                return 0;
            }
            
            //去掉前面为0的,如0099变成99
            String[] texts = number.split("");
            StringBuffer numbers = new StringBuffer("");
            for (String text : texts) {
                if(numbers.length() < 1){
                    if(text == "0"){
                        continue;
                    }
                }
                numbers.append(text);
            }
            
            if(numbers.length() < 1){
                return 0;
            }
            return Long.parseLong(numbers.toString());
        }
        
    

    正则表达式工具类:

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import org.apache.commons.lang.StringUtils;
    
    /**
     * 正则表达式工具类
     *
     */
    public class RegUtils {
        /**
         * 邮箱
         */
        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
         * @param regex 正则表达式
         * @param content 校验的内容
         * @return
         */
        public static boolean isMatch(String regex, CharSequence content){
            return Pattern.matches(regex, content);
        }
        
        
        /**
         * 校验手机号码
         * @param mobile
         * @return
         */
        public static final boolean isMoblie(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();
            }
            return flag;
        }
        
        
        /**
         * 校验邮箱
         * @param value
         * @return
         */
        public static final boolean isEmail(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();
            }
            return flag;
        }
        
        
        /**
         * 校验密码
         * @param password
         * @return 长度符合返回true,否则为false
         */
        public static final boolean isPassword(String password){
            boolean flag = false;
            if (null != password && !password.trim().equals("")) {
                password = password.trim();
                if(password.length() >= 6 && password.length() <= 30){
                    return true;
                }
            }
            return flag;
        }
        
        
        /**
         * 校验手机验证码
         * @param value
         * @return 符合正则表达式返回true,否则返回false
         */
        public static final boolean isPhoneValidateCode(String value){
            boolean flag = false;
            if (null != value && !value.trim().equals("")) {
                Pattern pattern = Pattern.compile("^8\\d{5}$");
                Matcher matcher = pattern.matcher(value.trim());
                flag = matcher.matches();
            }
            return flag;
        }
    
        
        /**
         * 判断是否全部大写字母
         * @param str
         * @return
         */
        public static boolean isUpperCase(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            String reg = "^[A-Z]$";
            return isMatch(reg,str);
        }
        
        
        /**
         * 判断是否全部小写字母
         * @param str
         * @return
         */
        public static boolean isLowercase(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            String reg = "^[a-z]$";
            return isMatch(reg,str);
        }
        
        
        /**
         * 是否ip地址
         * @param str
         * @return
         */
        public static boolean isIP(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(IP, str);
        }
        
        /**
         * 符合返回true,区分30、31天和闰年的2月份(最严格的校验),格式为2017-10-19
         * @param str
         * @return
         */
        public static boolean isDate(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(DATE_COMPLEX_LEAP_YEAR, str);
        }
        
        
        /**
         * 简单日期校验,不那么严格
         * @param str
         * @return
         */
        public static boolean isDateSimple(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(DATE, str);
        }
        
        
        /**
         * 区分30、31天,但没有区分闰年的2月份
         * @param str
         * @return
         */
        public static boolean isDateComplex(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(DATE_COMPLEX, str);
        }
        
        
        /**
         * 判断是否为数字字符串,如0011,10101,01
         * @param str
         * @return
         */
        public static boolean isNumberText(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(NUMBER_TEXT, str);
        }
        
        
        /**
         * 判断所有类型的数字,数字(整数、0、浮点数),可以判断是否金额,也可以是负数
         * @param str
         * @return
         */
        public static boolean isNumberAll(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(NUMBER_ALL, str);
        }
        
        
        /**
         * 是否为正整数数字,包括0(00,01非数字)
         * @param str
         * @return
         */
        public static boolean isIntegerWithZeroPos(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(INTEGER_WITH_ZERO_POS, str);
        }
        
        
        /**
         * 是否为整数,包括正、负整数,包括0(00,01非数字)
         * @param str
         * @return
         */
        public static boolean isIntegerWithZero(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(NUMBER_WITH_ZERO, str);
        }
        
        
        /**
         * 符合返回true,QQ,5-14位
         * @param str
         * @return
         */
        public static boolean isQQ(String str){
            if(StringUtils.isEmpty(str)){
                return false;
            }
            return isMatch(QQ, str);
        }
        
        
        public static void main(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"));
        }
        
    
    }
    

    (如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!) 

    ================================

    ©Copyright 蕃薯耀 2020-01-17

    https://www.cnblogs.com/fanshuyao/

    展开全文
  • importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.lang.StringUtils;/*** 正则表达式工具类**/public classRegUtils {/*** 邮箱*/public static final String EMAIL = "^\\w+...

    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=password.trim();if(password.length() >= 6 && password.length() <= 30){return true;

    }

    }returnflag;

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

    *@paramvalue

    *@return符合正则表达式返回true,否则返回false*/

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

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

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

    flag=matcher.matches();

    }returnflag;

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

    *@paramstr

    *@return

    */

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

    }

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

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

    *@paramstr

    *@return

    */

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

    }

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

    }/*** 是否ip地址

    *@paramstr

    *@return

    */

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

    }returnisMatch(IP, str);

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

    *@paramstr

    *@return

    */

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

    }returnisMatch(DATE_COMPLEX_LEAP_YEAR, str);

    }/*** 简单日期校验,不那么严格

    *@paramstr

    *@return

    */

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

    }returnisMatch(DATE, str);

    }/*** 区分30、31天,但没有区分闰年的2月份

    *@paramstr

    *@return

    */

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

    }returnisMatch(DATE_COMPLEX, str);

    }/*** 判断是否为数字字符串,如0011,10101,01

    *@paramstr

    *@return

    */

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

    }returnisMatch(NUMBER_TEXT, str);

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

    *@paramstr

    *@return

    */

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

    }returnisMatch(NUMBER_ALL, str);

    }/*** 是否为正整数数字,包括0(00,01非数字)

    *@paramstr

    *@return

    */

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

    }returnisMatch(INTEGER_WITH_ZERO_POS, str);

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

    *@paramstr

    *@return

    */

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

    }returnisMatch(NUMBER_WITH_ZERO, str);

    }/*** 符合返回true,QQ,5-14位

    *@paramstr

    *@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"));

    }

    }

    展开全文
  • // 获取字符串数字 private static void stringNumber() { String a = "20kg/桶"; String dest = "0"; if (a != null) { dest = a.replaceAll("[^0-9]", ""); } System.out.println(dest); }
  • 最近工作中遇到了一个需求,需要利用java获取字符串中的数字,尝试几种方法后发现利用正则表达式实现最为方法,下面这篇文章就主要介绍了Java通过正则表达式获取字符串中数字的方法,文中给出了详细的示例代码,需要...
  • 获取 Java 字符串中的数字

    千次阅读 2017-11-04 11:19:32
    获取 Java 字符串中的数字
  • 前言本文通过一个小范例来学习java中通过正则表达式如何获得一个字符串中的数字,下面话不多说,来看看详细的介绍吧。示例代码如下:import java.util.regex.Matcher;import java.util.regex.Pattern;public class ...
  • 【实例描述】字符串中可以包含数字,字母、...实例中将介绍一种方法用来判断字符串中的某个字符是否为汉字,通过此方法可以计算字符串中汉字的数量。实例的运行效果如图4.24 所示。【实现过程】在Eclipse 中新建项...
  • Java中怎样获取字符串中的数字和字符串 String a = "abc98sd76ds54wede32dse1addf"; String regEx = "[^0-9]"; Pattern p1 = Pattern.compile(regEx); Matcher m1 = p1.matcher(a); String xc1=m1.replaceAll(...
  • 字符串在java开发中使用得非常频繁,下面讲解如何获取字符串中的数字和。操作方法01原理是利用Interger.paseInt(string),方法转换,如果是数字的字符串,那么就可以转换成功,否则抛出异常:NumberFormatException:...
  • // 所需包如下 import java.util.regex.Matcher; import java.util.regex.Pattern; // 待匹配字符串 String str = "test110";...// 判断字符串中是否包含数字 if(matcher.find()){ // 获取数字起始位置
  • Java使用正则表达式如何实现获取字符串中的数字发布时间:2020-11-11 16:48:01来源:亿速云阅读:99作者:Leah本篇文章给大家分享的是有关Java使用正则表达式如何实现获取字符串中的数字,小编觉得挺实用的,因此...
  • java从一个包含中文字的字符串中抽取数字部分两种方法,自己使用后,感觉挺符合需求了,分享出来。有需要可以看看,看是否符合需求。
  • 问题背景 有个功能,需要从一个字符串中提取数字出来,就是把... //正则表达式从字符串中获取数字 public static String getNum(String str) { String dest = ""; if (str != null) { dest = s...
  • 前言本文通过一个小范例来学习java中通过正则表达式如何获得一个字符串中的数字,下面话不多说,来看看详细的介绍吧。示例代码如下:import java.util.regex.Matcher;import java.util.regex.Pattern;public class ...
  • 由于业务需要,需要在一串数字中获取数字,就用到了正则 String unm = Pattern.compile("[^0-9]").matcher(info.getWeName()).replaceAll("").trim(); 这里pattern最好单独定义成常亮或者字段,有助于预加载 ...
  • 场景字符串类似如下现在要获取S:后面的数字9实现indedOf方法,获取某字符所在下标。flightResult.getCabinString().indexOf(flightResult.getDefaultCabin().getCabinCode())相当于“abcd”.indexOf("b")如果是第25...
  • private static void test3() { String s2="MemTotal: 808964 ...“\d”表示[0-9]的数字,“\d+”表示由[0-9]的数字后面还有一次或多次(就是有一个或多个[0-9]的数字组成的数字串),第一个“\”是转义字符
  • 比如一个字符串:String mbmc=MB_FS2或者String mbmc=MB_FSAB21或者String mbmc=MB_F22SABC202 我想只获取后面的数字:即:2、...前面的字符串个数不定,并且前面字符串中的数字不要,只要后面的数字,该如何处理?
  • 小白一只,现在环境是这样:一个String类型变量”杭州20170222ax”或者是”乌鲁木齐20170222拉拉”我想拿到201702,总之从左往右开始得到第一个数字,在往右截6位(substring),关键是怎么得到第一个数字的下标...
  • java提取字符串中数字

    千次阅读 2019-05-12 18:07:50
    Pattern pattern = Pattern.compile("[需要匹配的数字(正则表达式)]"); Matcher matcher = pattern.matcher(n); while (matcher.find()) { System.out.println(matcher...现在我们获取字符串中的金钱,如下: pub...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 658
精华内容 263
关键字:

java获取字符串中的数字

java 订阅