2011-04-17 122 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