检查EditText Input是否为String

时间:2015-08-13 21:15:48

标签: android

我有一个名为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("");
            }

2 个答案:

答案 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