一、使用Java内置函数实现
对于一个字符串是否全部由数字组成的判断,可以使用Java内置函数实现:
public static boolean isNumeric(String str) { for (int i = 0; i < str.length(); i++) { if (!Character.isDigit(str.charAt(i))) { return false; } } return true; }
使用Character.isDigit()函数遍历字符串中的每一个字符,若不是数字则返回false。如果遍历完整个字符串仍没有返回,说明该字符串全部由数字组成,返回true。
二、使用正则表达式实现
除了使用内置函数外,还可以使用正则表达式判断一个字符串是否全部由数字组成:
public static boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); }
使用Pattern.compile()函数将一个正则表达式编译成一个Pattern对象,[0-9]表示数字,*表示匹配0个或多个数字。使用Matcher.matches()函数将字符串与Pattern匹配,如果匹配成功则返回true,否则返回false。
三、使用ASCII码表实现
我们还可以使用ASCII码表判断一个字符串是否全部由数字组成:
public static boolean isNumeric(String str){ byte[] bytes = str.getBytes(); for (int i = 0; i < bytes.length; i++) { if (bytes[i] < 48 || bytes[i] > 57) { return false;//不是数字 } } return true;//全是数字 }
将字符串转换成字节数组,然后判断每一个字节是否在ASCII码表的数字范围内。48~57表示ASCII码表中的0~9,如果字符不在该范围内,说明该字符串不是纯数字字符串。
四、总结
以上三种方法都能够判断一个字符串是否全部由数字组成,但在实际开发中需要依据实际情况选择最合适的方法,对于短小的字符串,使用内置函数更为合适;对于大量的字符串,使用ASCII码表方法更为高效;对于复杂的字符串,使用正则表达式方法能够方便地实现高度可定制化。