EditText检查输入是否从0到9并显示toast?

时间:2015-08-28 16:23:42

标签: java android android-edittext

如果输入数字为0到9,程序应显示第二个吐司“请引入一个真实的字母”。

唯一有效的是这段代码:

if(letter.equals("0")) {
  Toast.makeText(this, "Please introduce a real letter",Toast.LENGTH_SHORT).show();
}

但我只能将其设置为一个字母。

这是完整的代码:

EditText myEditText = (EditText) findViewById(R.id.editTextLetter);
String letter = myEditText.getText().toString();

if(letter.length() == 1) {
  checkLetter(letter);
}

if( ) {
  Toast.makeText(this, "Please introduce a real letter",Toast.LENGTH_SHORT).show();
} else {
  Toast.makeText(this, "Please introduce a letter",Toast.LENGTH_SHORT).show();
}
}

4 个答案:

答案 0 :(得分:3)

使用方法Character.isDigit();

char letter = input.charAt(0);
if(Character.isDigit(letter))
{
    //good input
}
else
{
    //bad input
}

如果您要查看某个数字,而不只是0-9,请使用Integer.parseInt(input)

答案 1 :(得分:1)

试试这段代码:

try {
    int number = Integer.parseInt(letter);
    if (number > 9 || number < 0) {
            Toast.makeText(this, "Number should be from 0 to 9",Toast.LENGTH_SHORT).show();
            return;
    }

    // number is correct, work with your number here    

} catch (NumberFormatException nfe) {
     Toast.makeText(this, "Unable to convert the string to number: " + letter,Toast.LENGTH_SHORT).show();
     return;
}

答案 2 :(得分:0)

试试这个:

    try{
        int x = Integer.parseInt(letter);

        if(x < 10 && x >= 0) {
            Toast.makeText(this, "Please introduce a real letter",Toast.LENGTH_SHORT).show()
        } else {
            Toast.makeText(this, "Please introduce a letter",Toast.LENGTH_SHORT).show();
        }

    } catch(NumberFormatException e) {
        //Not a number
    }

答案 3 :(得分:0)

从James Wierzba上面修改,因为isDigit实际上可能是错误的

char letter = input.charAt(0);
if(letter >= '0' && letter <= '9')
{
    //good input
}
else
{
    //bad input
}

http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isDigit%28char%29

  

确定指定的字符(Unicode代码点)是否为数字。

     

如果字符是一般类别类型,则字符是数字   getType(codePoint),是DECIMAL_DIGIT_NUMBER。

     

包含数字的一些Unicode字符范围:

'\u0030' through '\u0039', ISO-LATIN-1 digits ('0' through '9')
'\u0660' through '\u0669', Arabic-Indic digits
'\u06F0' through '\u06F9', Extended Arabic-Indic digits
'\u0966' through '\u096F', Devanagari digits
'\uFF10' through '\uFF19', Fullwidth digits