web-dev-qa-db-ja.com

入力された値が数値かどうかを確認してください

私はこのスニペットを試しましたが、機能しません

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

値をチェックするためにユーザー名またはIDのいずれかを受け入れることができるように注意してください。数字だけを受け入れたくないです!!

13
A.J

この式は検証番号のみに使用します

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

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

ブール値がtrueの場合は数値、それ以外の場合は文字列値

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

または例

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

editTextプロパティを設定しますinputType = numberこれは常に数値を入力として受け取ります

Android:inputType="number"
6

この正規表現で試してください:

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

そのためにTextUtilsクラス関数を使用します

TextUtils.isDigitsOnly("gifg");

数字のみが存在する場合はtrueを返し、文字列内に文字が存在する場合はfalseを返します。

4
Aditi

この方法を使用

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

このような :

if (isNumber(input)) {
  // string is int
}
1
Maysam R

この関数を使用して、小数点以下2桁の3桁の整数値と浮動小数点値をチェックします。桁数を制限したくない場合は、正規表現から{x、x}を削除してください。

private boolean isNumeric(String string) {
     if(Pattern.matches("\\d{1,3}((\\.\\d{1,2})?)", string))
          return true;
     else
          return false;
}
0

本当にこの方法で例外を使用するべきではありません。このように例外がスローされることが予想される場合は、それを処理する別の方法を見つける必要があります。

使用してみてください: http://developer.Android.com/reference/Android/widget/TextView.html#setRawInputType%28int%29

このような何かがそれをするはずです:

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

おそらくこのようなもの:

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

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

複雑な形式に一致するように正規表現を変更できます。

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

アクティビティに単純にAndroid:inputType = "number"内に追加します

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

}
0
rikin patoliya