2015-08-13 35 views
0

我有一個名爲input的EditText Widget,它要求輸入用戶名和一個Button,當點擊它時,它將顯示在一個名爲Output的TextView中。我如何測試以確保用戶輸入的是字符串值而不是一堆整數?有沒有可以拋出的任何類型的異常?謝謝。檢查EditText輸入是否爲字符串

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

嘗試正則表達式。 –

+0

一串字符串中的整數。您需要先準確定義您想要允許的輸入類型。 – njzk2

回答

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 
+0

爲什麼不讓正則表達式查找所有數字的字符串,而不僅僅是檢查英文字母? –

+0

@LucasCrawford我的愚蠢..將更新答案。謝謝 – MjZac

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 
}