我有一个名为input的EditText Widget,它询问用户的名字和一个Button,它在单击时显示在一个名为output的TextView中。我如何测试以确保用户输入的是String值而不是一堆整数?是否可以抛出任何类型的异常?谢谢。
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
String name = input.getText().toString();
//How can I find out if the user is typing in something
//other than a String here?
output.setText(input.getText());
}catch(NumberFormatException e){
Log.v("Not a number", TAG);
output.setError("Must Be A Number");
output.setText("");
}
答案 0 :(得分:1)
尝试这个来检查edittext输入是字符串还是数字
//it gives true if text is number else it return false
public static boolean isNumeric(String str)
{
try
{
double d = Double.parseDouble(str);
}
catch(NumberFormatException nfe)
{
return false;
}
return true;
}
或者你可以试试这个:
String regexString = "^[0-9]*$";
if(editText.getText().toString().trim().matches(regexString))
{
//it is digit
}
else{
//it is string
}
答案 1 :(得分:0)
Pattern p = Pattern.compile("[^\\p{L}+]");
Matcher m = p.matcher(" input string ")
if(m.find())
//do whatever you want when input has digits/ special characters/ white space
else
//valid string