题目;使用正则表达式要怎么判断一个元素集里全为数字?下面听小编来讲讲其中门道。
方法一: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工具网了解详情吧。
推荐阅读: