我的程序需要从用户输入字符串。如果输入字符串与正则表达式匹配,则应将其插入到arrayList中。插入与正则表达式匹配的字符串
我写到下面。但是,这是行不通的:
if(element.matches("[a-zA-Z]"));
{
set.add(element);
}
我的程序需要从用户输入字符串。如果输入字符串与正则表达式匹配,则应将其插入到arrayList中。插入与正则表达式匹配的字符串
我写到下面。但是,这是行不通的:
if(element.matches("[a-zA-Z]"));
{
set.add(element);
}
我想你忘记了+
标志,意思是“一次或多次”:
if (element.matches("[a-zA-Z]+")) {..}
(当然,如上例所示,你必须摆脱分号)
恩,downvote ..? – Bozho 2011-04-18 06:03:57
如果这实际上是如何写你的代码,那么element
将永远被添加到set
。您需要在第一行的末尾删除;
为条件的工作:
if (element.matches("[a-zA-Z]")) {
set.add(element);
}
如果你想匹配超过字符越多,你可能要为"[a-zA-Z]+"
表达。
要匹配一个或多个字符,正则表达式应该是'“[a-zA-Z] +”' – Yeameen 2011-04-18 04:22:04
@Yeameen:谢谢,修正。 – WhiteFang34 2011-04-18 04:28:42
您能否提供更多的代码,即元素和集合的定义,然后提供不能正常工作的实际输入? – edwardsmatt 2011-04-17 22:12:32
我记得JCP认证有一个相同的分号错误的问题。他们当然故意测试对语言基础知识的理解。 – 2011-04-17 22:20:29