1. 程式人生 > >java中判斷字串中是否包含數字

java中判斷字串中是否包含數字

在javascript中有一個方法isDigit()使用來判斷一個字串是否都是數字,在java的字串處理方法中沒有這樣的方法,昨天在介面中用到了,順便查了下,總結了下,下次用到,順手拈來

// 判斷一個字串是否都為數字  
public boolean isDigit(String strNum) {  
    return strNum.matches("[0-9]{1,}");  
}  
  
// 判斷一個字串是否都為數字  
public boolean isDigit(String strNum) {  
    Pattern pattern = Pattern.compile("[0-9]{1,}");  
    Matcher matcher = pattern.matcher((CharSequence) strNum);  
    return matcher.matches();  
}

//擷取數字  
public String getNumbers(String content) {  
    Pattern pattern = Pattern.compile("\\d+");  
    Matcher matcher = pattern.matcher(content);  
    while (matcher.find()) {  
       return matcher.group(0);  
    }  
    return "";  
}  
  
// 擷取非數字  
public String splitNotNumber(String content) {  
    Pattern pattern = Pattern.compile("\\D+");  
    Matcher matcher = pattern.matcher(content);  
    while (matcher.find()) {  
        return matcher.group(0);  
    }  
    return "";  
}
  
// 判斷一個字串是否含有數字
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;
}

java中判斷字串是否為數字的四種方法 :

1.用JAVA自帶的函式

public static boolean isNumeric(String str) {
        for (int i = str.length(); --i >= 0;) {
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }

2.可以使用lang3下的包下StringUtils類的方法isNumeric()
String str="1235456";
boolean flag =StringUtils.isNumeric(str);

3..用正則表示式 

  public static boolean isNumeric(String str) {
        Pattern pattern = Pattern.compile("[0-9]*");
        return pattern.matcher(str).matches();
    }

4.用ASCII碼 

public static boolean isNumeric(String str) {
        for (int i = str.length(); --i >= 0;) {
            int chr = str.charAt(i);
            if (chr < 48 || chr > 57)
                return false;
        }
        return true;
    }