如果输入数字为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();
}
}
答案 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