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; } } }