2014-10-18 190 views
-1

我想要做的是檢查用戶輸入是否合適,如果是,則使用用戶輸入,否則拋出異常。檢查用戶輸入是否適合

適合只能有一個真實的輸入形式是:x,y;x,y;x,y;x,y其中x >= 0 & y > 0。 (xy在每個逗號分隔符中不必具有相同的值,例如真實輸入是0,1;2,3;4,5;6,7)如果用戶鍵入其他任何內容,例如"asd"0,1;2,3;4,5(缺少一個x,y),他會得到該異常。我認爲我可以處理異常拋出,但問題是我不知道如何檢查用戶輸入是否合適。我不知道是否有必要在這裏提供我的代碼,因爲檢查部分不在我的代碼中,而其他任何東西都不重要。

守則要求,不知道是出於什麼原因,但創造了一些快速例如:

TextField tf1 = new TextField(); 
String inputText = tf1.getText(); 
if (inputText == form(x,y;x,y;x,y;x,y)) { 
    // do things; 
} 
else { 
    throw exception; 
} 
+0

請顯示一些代碼 – msrd0 2014-10-18 12:32:16

+0

另請參閱http://stackoverflow.com/q/13732047/1076463 – Robin 2014-10-18 13:00:35

回答

0

從測試情況0,1;2,3;4,5,它定義了一個數(「x」)將包含一個不爲0的整數序列的零。這將是:

(?:0|[1-9]\d*+) 

從那裏,你可以量化的子模式重複節 「x,y」 的其餘部分:

(?:0|[1-9]\d*+),[1-9]\d*+(?:;(?:0|[1-9]\d*+),[1-9]\d*+){3}

這裏是一個regex demo

0

使用正則表達式

if (inputText.matches("[0-9]+,[1-9]+[0-9]*(?:;[0-9]+,[1-9]+[0-9]*){3}")) 
{ 
    // do things 
}  
+0

Regexp固定,它現在應該工作 – ToYonos 2014-10-23 10:09:13