正则验证字符串中是否存在数字

//正则匹配表达式
String regExOne = "^[1-9]{1}$";
String regExTow = "^[0-9]{2}$";
Pattern patternOne = Pattern.compile(regExOne);
Pattern patternTow = Pattern.compile(regExTow);

List<String> nameList = new ArrayList<>();
nameList.add("7号桩");
nameList.add("9号桩");
nameList.add("1号桩");
nameList.add("3号桩");
nameList.add("11号桩");
nameList.add("11号桩");
nameList.add("8号桩");
nameList.add("2号桩");
nameList.add("4号桩");
nameList.add("6号桩");

//创建map设置每个元素的位置对于的值
Map<String,Integer> map = new HashMap<>();
//截取后的数据数字数组
int[] arrs = new int[nameList.size()];
for(int i=0,size = nameList.size();i<size;i++){
    String name = nameList.get(i);
    //取出第第一位,验证是否是数字
    String nameIndexOne = name.substring(0,1);
    //验证是否存在名称中是否存在数字
    Matcher matcherIndexOne = patternOne.matcher(nameIndexOne);
    boolean indexOne =  matcherIndexOne.find();
    if(indexOne){
        //取出第第二位,验证是否是数字
        String nameIndexTow = name.substring(0,2);
        Matcher matcherIndexTow = patternTow.matcher(nameIndexTow);
        boolean indexTow = matcherIndexTow.find();
        if(indexTow){
            map.put(nameIndexTow,i);
            arrs[i] = Integer.parseInt(nameIndexTow);
        }else{
            map.put(nameIndexOne,i);
            arrs[i] = Integer.parseInt(nameIndexOne);
        }
    }
}
Arrays.sort(arrs);
for(int j=0,size=arrs.length;j<size;j++){
   System.out.print(arrs[i]);
}
// 判断一个字符串是否含有数字
    public boolean HasDigit(String content) {
        boolean flag = false;
        Pattern p = Pattern.compile(".*\\d+.*");
        Matcher m = p.matcher(content);
        if (m.matches()) {
            flag = true;
        }
        return flag;
    }
//判断一个字符是否都为数字 
    public static boolean isDigit(String strNum){
        return strNum.matches("[0-9]{1,}");
    }
    
    // 判断一个字符串是否都为数字  
    public static boolean isDigit2(String strNum) {  
        Pattern pattern = Pattern.compile("[0-9]{1,}");  
        Matcher matcher = pattern.matcher((CharSequence) strNum);  
        return matcher.matches();  
    }

 

//截取数字  【读取字符串中第一个连续的字符串,不包含后面不连续的数字】
    public static String getNumbers(String content) {  
        Pattern pattern = Pattern.compile("\\d+");  
        Matcher matcher = pattern.matcher(content);  
        while (matcher.find()) {  
           return matcher.group(0);  
        }  
        return "";  
    }  
      
    // 截取非数字  
    public static String splitNotNumber(String content) {  
        Pattern pattern = Pattern.compile("\\D+");  
        Matcher matcher = pattern.matcher(content);  
        while (matcher.find()) {  
            return matcher.group(0);  
        }  
        return "";  
    }

 

用java自带函数
//判断一个字符串是否为数字
    public static boolean isNumeric(String str){
        for (int i =  str.length(); --i>=0;) {
            if(!Character.isDigit(str.charAt(i))){
                return false;
            }
        }
        return true;
    }
//判断一个字符串是否为数字 用ASCII码
    public static boolean isNumeric3(String str){
        for(int i=str.length(); --i>=0;){
            char c=str.charAt(i);
            if (c < 48 || c > 57)
                return false;
        }
        return true;
    }
//正则 
public static boolean isNumeric2(String str){
        Pattern pattern=Pattern.compile("[0-9]*");
        return pattern.matcher(str).matches();
    }

转载于:https://my.oschina.net/u/2251646/blog/1821724

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值