2011-04-17 125 views
1

我的程序需要從用戶輸入字符串。如果輸入字符串與正則表達式匹配,則應將其插入到arrayList中。插入與正則表達式匹配的字符串

我寫到下面。但是,這是行不通的:

 if(element.matches("[a-zA-Z]")); 
     { 
     set.add(element); 
     } 
+0

您能否提供更多的代碼,即元素和集合的定義,然後提供不能正常工作的實際輸入? – edwardsmatt 2011-04-17 22:12:32

+1

我記得JCP認證有一個相同的分號錯誤的問題。他們當然故意測試對語言基礎知識的理解。 – 2011-04-17 22:20:29

回答

0

我想你忘記了+標誌,意思是「一次或多次」:

if (element.matches("[a-zA-Z]+")) {..} 

(當然,如上例所示,你必須擺脫分號)

+0

恩,downvote ..? – Bozho 2011-04-18 06:03:57

4

如果這實際上是如何寫你的代碼,那麼element將永遠被添加到set。您需要在第一行的末尾刪除;爲條件的工作:

if (element.matches("[a-zA-Z]")) { 
    set.add(element); 
} 

如果你想匹配超過字符越多,你可能要爲"[a-zA-Z]+"表達。

+0

要匹配一個或多個字符,正則表達式應該是'「[a-zA-Z] +」' – Yeameen 2011-04-18 04:22:04

+0

@Yeameen:謝謝,修正。 – WhiteFang34 2011-04-18 04:28:42