我已尝试过此代码段,但无效
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来检查值, 我不希望它只接受数字!!
答案 0 :(得分:18)
将此表达式用于仅验证号码
String regexStr = "^[0-9]*$";
if(et_number.getText().toString().trim().matches(regexStr))
{
//write code here for success
}
else{
// write code for failure
}
答案 1 :(得分:13)
如果布尔值为true,则为数字,否则为字符串值
$expression
或示例
boolean digitsOnly = TextUtils.isDigitsOnly(editText.getText());
答案 2 :(得分:6)
设置EditText proprerty inputType = number它总是将数字作为输入
android:inputType="number"
答案 3 :(得分:5)
尝试使用此正则表达式:
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!!!!!!!!!!!^^^");
}
答案 4 :(得分:3)
使用<?php echo form_open('lang') ?>
类功能
TextUtils
如果只有数字,它将返回true,如果字符串
中存在任何字符,则返回false答案 5 :(得分: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);
答案 6 :(得分:0)
也许是这样的:
String text = enteredID.getText().toString();
if(text.matches("\\w+")){
//--words--
}else if (text.matches("\\d+")){
//--numeric--
}else {
//-- something else --
}
您可以更改正则表达式以匹配复杂格式。
答案 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
}
答案 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");
}
答案 9 :(得分:0)
使用此方法
boolean isNumber(String string) {
try {
int amount = Integer.parseInt(string);
return true;
} catch (Exception e) {
return false;
}
}
像这样:
if (isNumber(input)) {
// string is int
}
答案 10 :(得分:0)
我使用此功能检查小数点后两个位置的三位数Integer和Float值。如果您不想限制位数,请从正则表达式中删除{x,x}。
private boolean isNumeric(String string) {
if(Pattern.matches("\\d{1,3}((\\.\\d{1,2})?)", string))
return true;
else
return false;
}
答案 11 :(得分:0)
在活动上,只需在 android:inputType =“ number”
答案 12 :(得分:0)
/**
* If @param digit is null or not any of the numbers - @return false.
*/
static boolean isNumber(String digit) {
try {
Double.parseDouble(digit);
} catch (NullPointerException | NumberFormatException ignored) {
return false;
}
return true;
}