在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.用正則表達式
public static boolean isNumeric(String str) { Pattern pattern = Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); }
3.用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; }
