web-dev-qa-db-fra.com

Vérifiez que la valeur entrée est numérique ou non

J'ai essayé cet extrait, mais cela ne fonctionne pas

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!!!!!!!!!!!^^^");
}

veillez à ce qu'il puisse accepter le nom d'utilisateur ou l'identifiant pour vérifier la valeur, je ne veux pas qu'il accepte uniquement les chiffres !!

10
A.J

Utilisez cette expression pour valider le numéro uniquement

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

if(et_number.getText().toString().trim().matches(regexStr))
{
    //write code here for success
}
else{
    // write code for failure
}
18
Dhaval Patel

Si la valeur booléenne est true, il s'agit d'un nombre sinon de la valeur de chaîne

boolean digitsOnly = TextUtils.isDigitsOnly(editText.getText());

ou par exemple

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();
                }
            }
11
Ramesh Kumar

set EditText propriété inputType = nombre il prendra toujours des nombres en entrée

Android:inputType="number"
6
Muhammad Aamir Ali

Essayez avec cette expression régulière:

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!!!!!!!!!!!^^^");
 }
5
David N

Utilisez la fonction TextUtils pour cette fonction

TextUtils.isDigitsOnly("gifg");

il retournera true s'il n'y a que des chiffres et false si un caractère existe dans la chaîne

3
Aditi

Vous ne devriez jamais utiliser une exception de cette manière. Lorsque vous vous attendez à ce qu'une exception soit levée de cette manière, vous devez trouver un autre moyen de la gérer.

Essayez d’utiliser: http://developer.Android.com/reference/Android/widget/TextView.html#setRawInputType%28int%29

Quelque chose comme ça devrait le faire:

editText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED);
0
Scott Helme

Peut-être quelque chose comme ça:

    String text = enteredID.getText().toString();

    if(text.matches("\\w+")){
      //--words--
    }else if (text.matches("\\d+")){
      //--numeric--
    }else {
      //-- something else --
    }

Vous pouvez modifier l'expression régulière pour qu'elle corresponde à des formats complexes.

0
S.D.
String text = editText123.getText().toString();
try {
   int num = Integer.parseInt(text);
   Log.i("",num+" is a number");
} catch (NumberFormatException e) {
   Log.i("",text+" is not a number");
}
0
pm dubey

utiliser cette méthode

 boolean isNumber(String string) {
    try {
      int amount = Integer.parseInt(string);
      return true;
    } catch (Exception e) {
      return false;
    }
  }

comme ça :

if (isNumber(input)) {
  // string is int
}
0
Maysam R
Pattern ptrn = Pattern.compile(regexStr);

if (!ptrn.matcher(et_number.getText().toString().trim()).matches()) {

    //write code here for success

}else{

    //write code here for success

}
0
rikin patoliya