检查输入的值是否为数字

A.J*_*A.J 12 android integer

我试过这个片段,但它不起作用

try 
    {
    Integer.parseInt(enteredID.getText().toString());
    Log.i("enteredID value", "enterdID is numeric!!!!!!!!!!!^^^");
    flag=1;
} catch (NumberFormatException e) {
    flag=-1;
    Log.i("enteredID value", "enterdID isn't numeric!!!!!!!!!!!^^^");
}
Run Code Online (Sandbox Code Playgroud)

注意它可以接受用户名或ID来检查值,我不希望它只接受数字!

小智 19

使用此表达式仅用于验证号码

String regexStr = "^[0-9]*$";

if(et_number.getText().toString().trim().matches(regexStr))
{
    //write code here for success
}
else{
    // write code for failure
}
Run Code Online (Sandbox Code Playgroud)


Ram*_*mar 15

如果布尔值为true,则为数字,否则为字符串值

boolean digitsOnly = TextUtils.isDigitsOnly(editText.getText());
Run Code Online (Sandbox Code Playgroud)

或者例如

String text = edt_email.getText().toString();
            boolean digitsOnly = TextUtils.isDigitsOnly(text);
            if (digitsOnly) {
                 if (text.length() == 0) {
                    Toast.makeText(getApplicationContext(), "field can't be empty.", Toast.LENGTH_LONG).show();
                 } else {
                   Toast.makeText(getApplicationContext(), "field is int value", Toast.LENGTH_LONG).show();
                 }
            }else {
                    Toast.makeText(getApplicationContext(), "Field is string value", Toast.LENGTH_LONG).show();
                }
            }
Run Code Online (Sandbox Code Playgroud)


Muh*_*Ali 6

设置EditText proprerty inputType = number它将始终将数字作为输入

android:inputType="number"
Run Code Online (Sandbox Code Playgroud)


Dav*_*d N 5

试试这个正则表达式:

String regex = "-?\\d+(\\.\\d+)?";

if (enteredID.getText().toString().matches(regex))  {
     Log.i("enteredID value", "enterdID is numeric!!!!!!!!!!!^^^");
     flag=1;
 } else {
     flag=-1;
     Log.i("enteredID value", "enterdID isn't numeric!!!!!!!!!!!^^^");
 }
Run Code Online (Sandbox Code Playgroud)


小智 5

TextUtils为此使用类函数

TextUtils.isDigitsOnly("gifg");
Run Code Online (Sandbox Code Playgroud)

如果只有数字,则返回 true,如果字符串中存在任何字符,则返回 false