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