java中用正则表达式判断字符串是否全是数字

    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

可用于Hive的regexp查询

你可能感兴趣的:(Java)