Controllare il valore inserito è un numero o non

Ho provato questo frammento di codice, ma non funziona

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

fare attenzione che si può accettare o nome utente o id per controllare il valore,
Io non lo voglio accettare solo numeri!!!!

OriginaleL’autore A.J | 2013-07-25

10 risposte

  1. 18

    Utilizzare questa espressione per convalidare il numero solo

    String regexStr = "^[0-9]*$";
    
    if(et_number.getText().toString().trim().matches(regexStr))
    {
        //write code here for success
    }
    else{
        //write code for failure
    }
    Funziona eccellente.Grazie.
    Questo funziona per me, tranne che io sto cercando di consentire a un decimale anche, e quando ho la copia di un numero come 33.8, non riesce… come faccio ad aggiornare il regexStr per consentire il punto decimale?
    è necessario sostituire il “^[0-9]*$” stringa “^[1-9]\s*(\.\d+)?$”
    Il lavoro per me. ma l’uso di android, "^[1-9]\\d*(\\.\\d+)?$" Grazie

    OriginaleL’autore Dhaval Patel

  2. 11

    Se valore booleano che è true, allora è la numero altrimenti il valore di stringa

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

    o per Esempio

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

    OriginaleL’autore Ramesh Kumar

  3. 6

    set EditText proprietà inputType = numero sarà sempre prendere i numeri di ingresso

    android:inputType="number"
    thnx,ma ho scritto una nota che voglio che l’utente di immettere numeri e caratteri,per ogni pezzo di codice da eseguire

    OriginaleL’autore Muhammad Aamir Ali

  4. 5

    Provare con questa espressione regolare :

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

    OriginaleL’autore David N

  5. 3

    Utilizzare TextUtils funzione di classe per

    TextUtils.isDigitsOnly("gifg");

    ritorna true se solo cifre sono lì e false se qualsiasi carattere presente all’interno della stringa di

    OriginaleL’autore Aditi

  6. 0

    Forse qualcosa di simile a questo:

        String text = enteredID.getText().toString();
    
        if(text.matches("\\w+")){
          //--words--
        }else if (text.matches("\\d+")){
          //--numeric--
        }else {
          //-- something else --
        }

    È possibile modificare le regex per trovare complessi formati.

    OriginaleL’autore S.D.

  7. 0
    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
    
    }

    OriginaleL’autore rikin patoliya

  8. 0
    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");
    }

    OriginaleL’autore pm dubey

  9. 0

    utilizzare questo metodo

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

    come questo :

    if (isNumber(input)) {
      //string is int
    }

    OriginaleL’autore Maysam R

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *