题目;使用正则表达式要怎么判断一个元素集里全为数字?下面听小编来讲讲其中门道。
方法一:
public class Test { public static boolean checkNumber(double value) { String str = String.valueOf(value); String regex = "^(-?[1-9]\\d*\\.?\\d*)|(-?0\\.\\d*[1-9])|(-?[0])|(-?[0]\\.\\d*)$"; return str.matches(regex); } public static boolean checkNumber(int value) { String str = String.valueOf(value); String regex = "^(-?[1-9]\\d*\\.?\\d*)|(-?0\\.\\d*[1-9])|(-?[0])|(-?[0]\\.\\d*)$"; return str.matches(regex); } public static boolean checkNumber(String value) { String regex = "^(-?[1-9]\\d*\\.?\\d*)|(-?0\\.\\d*[1-9])|(-?[0])|(-?[0]\\.\\d*)$"; return value.matches(regex); } public static void main(String[] args) { System.out.println(checkNumber(0)); // true System.out.println(checkNumber(-0)); // true System.out.println(checkNumber(23)); // true System.out.println(checkNumber(-23)); // true System.out.println(checkNumber(0.0)); // true System.out.println(checkNumber(-0.0)); // true System.out.println(checkNumber(23.01)); // true System.out.println(checkNumber(-23.01)); // true System.out.println(checkNumber("-10.01.01")); // false System.out.println(checkNumber("A 1 10")); // false } }
方法二:
public boolean isNumeric(String str) { //Pattern pattern = Pattern.compile("^-?[0-9]+"); //这个可以 Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$"); //这个也行 Matcher isNum = pattern.matcher(str); if (!isNum.matches()) { return false; } return true; }
System.out.println(new Test() .isNumeric("sd21")); //false System.out.println(new Test() .isNumeric("2113 23")); //false System.out.println(new Test() .isNumeric("")); //false System.out.println(new Test() .isNumeric("12#12")); //false System.out.println(new Test() .isNumeric("-11212")); //true System.out.println(new Test() .isNumeric("11212")); //true System.out.println(new Test() .isNumeric("11212SDS")); //false
以上就是今天的全部内容,一般java基础的常见问题就是如此了,如果还有其他不懂常见问题敬请关注奇Q工具网了解详情吧。
推荐阅读: