有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有InputFilter的java 安卓自定义正则表达式

我想在我的编辑文本中检查这个正则表达式。五个符号后的文本必须添加点,点后应输入两个符号,例如XXXXX。XX(最大金额99999.99) 我编写了自定义InputFilter,但它不能正常工作。这是一个密码

class DecimalDigitsInputFilter implements InputFilter {

    Pattern mPattern;

    public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) {
        mPattern=Pattern.compile("[0-9]*" + (digitsBeforeZero-1) + "}+((\\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\\.)?");
    }

    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

        Matcher matcher=mPattern.matcher(dest);
        if(!matcher.matches())
            return "";
        return null;
    }

}

我是这样使用这个类的

数量价值。setFilters(new InputFilter[]{new DecimalDigitsInputFilter(5,2)})

有谁能告诉我我的代码中有什么错误,或者什么是创建这种正则表达式的最佳方法吗。 谢谢


共 (0) 个答案