Android 如何检查EditText中输入的值是否为数字?

Android 如何检查EditText中输入的值是否为数字?,android,validation,input,android-edittext,Android,Validation,Input,Android Edittext,我的应用程序以用户的userid作为输入,userid是字母数字的,即第一个字符是(a-z),其他部分是数字。如何验证这种类型的输入(如G34555)?使用正则表达式。假设第一个字母可以是大写或小写,则应该这样做: Pattern p = Pattern.compile("[a-zA-Z][0-9]+"); Matcher m = p.matcher("some text you want"); boolean isAlphaNum = m.matches(); 我已通过使用简单的字符

我的应用程序以用户的userid作为输入,userid是字母数字的,即第一个字符是(a-z),其他部分是数字。如何验证这种类型的输入(如G34555)?

使用正则表达式。假设第一个字母可以是大写或小写,则应该这样做:

 Pattern p = Pattern.compile("[a-zA-Z][0-9]+");

 Matcher m = p.matcher("some text you want");
 boolean isAlphaNum = m.matches();

我已通过使用简单的
字符串
函数
匹配项

String str=“mystring”

str.matches(“[a-zA-Z][0-9]+”)

似乎是一个更体面的解决方案,它不允许输入不被接受的字符

来自链接的代码:

InputFilter filter = new InputFilter() {
    public CharSequence filter(CharSequence source, int start, int end,
    Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            if (!Character.isLetterOrDigit(source.charAt(i))) {
                return "";
            }
        }
        return null;
    }
};

edit.setFilters(new InputFilter[]{filter});
InputFilter过滤器=新的InputFilter(){
公共CharSequence筛选器(CharSequence源、int开始、int结束、,
跨越目的地、内部数据起点、内部数据起点){
for(int i=start;i