2012-07-08 28 views
2

我有一個簡單的EditText,用戶可以插入三個用逗號分隔的值。例如,我可以使用以下模板:如何在Android中驗證用戶輸入?

value1, value2, value3 

其中value1,value2是double類型,value3是整數。

如何驗證用戶是否已根據此模板輸入文本?

回答

4

使用正則表達式Matcher

final String DOUBLE = "\\d+(?:\\.\\d+)?"; 
final Pattern PATTERN = Pattern.compile(DOUBLE + ", " + DOUBLE + ", \\d+"); 
Matcher matcher = PATTERN.matcher(textView.getText().toString()); 
if (!matcher.matches()) { 
    // invalid input 
} 
+0

不要預見使用偵聽器來捕捉文本更改的事件。 [http://developer.android.com/reference/android/widget/TextView.html#addTextChangedListener(android.text.TextWatcher)] – 2012-07-08 10:58:23

+0

我不知道爲什麼,但應該加一個更正: final String DOUBLE = 「\\ d +(?:\\ d +)?」; final Pattern Pattern = Pattern.compile(DOUBLE +「,」+ DOUBLE +「,\\ d +」); 你能改正,我會接受答案嗎? – Yury 2012-07-08 14:02:16

+0

@Yury傻了,你說得對。在一個Java String文字中,爲了得到一個黑斜線,我們需要將其轉義。所以我們需要兩個反斜槓。更正了我的答案。 – 2012-07-08 17:32:56