改变世界的是这样一群人,他们寻找梦想中的乐园,当他们找不到时,他们亲手创造了它

Java中判断字符串是否为数字的五种方法

package com.shuilangyizu;

import java.util.regex.Pattern;

import me.chanjar.weixin.common.util.StringUtils;

public class IsNumber {

    public static void main(String[] args) {
        String str1 = "00";
        String str2 = "00shuilangyizu";
        String str3 = "shuilangyizu";
        boolean flag11 = test1(str1);//true
        boolean flag12 = test1(str2);//false
        boolean flag13 = test1(str3);//false
        
        boolean flag21 = test2(str1);//true
        boolean flag22 = test2(str2);//false
        boolean flag23 = test2(str3);//false
        
        boolean flag31 = test3(str1);//true
        boolean flag32 = test3(str2);//false
        boolean flag33 = test3(str3);//true
        
        boolean flag41 = test4(str1);//true
        boolean flag42 = test4(str2);//false
        boolean flag43 = test4(str3);//false
        
        boolean flag51 = test5(str1);//true
        boolean flag52 = test5(str2);//false
        boolean flag53 = test5(str3);//false
        
    }
    
    /**
     * 第一种方法、利用字符类Character的isDigit()方法。
     * @param str
     * @return
     */
    public static boolean test1(String str){
        if (StringUtils.isNotEmpty(str)) {
            for (int i = 0; i < str.length(); i++) {
                if (!Character.isDigit(str.charAt(i))) {
                    return false;
                }
            }
        }else{
            return false;
        }
        return true;
    }
    
    /**
     * 第二种方法、利用字符串类String的方法matches来判断。
     * @param str
     * @return
     */
    public static boolean test2(String str){
        if (StringUtils.isNotEmpty(str)) {
            boolean flag = str.matches("^[0-9]*$");
            return flag;
        }else{
            return false;
        }
    }
    
    /**
     * 第三种方法、利用正则表达式类Pattern类来判断。
     * 推荐,速度最快
     * @param str
     * @return
     */
    public static boolean test3(String str){
        if (StringUtils.isNotEmpty(str)) {
            Pattern pattern = Pattern.compile("^[-\\=]?[\\d]*$");
            boolean flag = pattern.matcher(str).matches();
            return flag;
        }else{
            return false;
        }
    }
    
    /**
     * 第四种方法、遍历使用ascii码判断。
     * @param str
     * @return
     */
    public static boolean test4(String str){
        if (StringUtils.isNotEmpty(str)) {
            for (int i = 0; i < str.length(); i++) {
                int chr = str.charAt(i);
                if (chr<48||chr>57) {
                    return false;
                }
            }
        }else{
            return false;
        }
        return true;
    }
    
    /**
     * 第五种方法、利用正则表达式类判断。
     * @param str
     * @return
     */
    public static boolean test5(String str){
        if (StringUtils.isNotEmpty(str)) {
            Pattern pattern = Pattern.compile("[0-9]*");
            boolean flag = pattern.matcher(str).matches();
            return flag;
        }else{
            return false;
        }
    }
        
}

 

posted @ 2018-09-19 09:21  水狼一族  阅读(1974)  评论(0编辑  收藏  举报
改变世界的是这样一群人,他们寻找梦想中的乐园,当他们找不到时,他们亲手创造了它