我一直在讨论这个问题,我觉得如果将字符串(AAAA-123或AAA123)拆分成2个字符串并进行比较,这可能是最好的。我可以确保它们都是数字字符,但确保它们的格式正确,我不觉得我必须遗漏一些东西。
Name = txtfClass.getText();
if((Name.length()==8)&&(Name.matches("[a-gA-G]-\\d{3}"))){
checker(Name);
System.out.println("it works");
}
当Name = ABCD-123时,该代码不起作用。我错过了什么?如果你想知道这里检查(姓名):
public boolean checker(String name){
CourseAbrv = name.substring(0, 4);
System.out.println(CourseAbrv);
return false;
}
它什么都不返回
答案 0 :(得分:1)
将正则表达式更改为Name.matches("[A-G]{4}-\\d{3}")
。 [a-gA-G]
匹配单个字符。
注意:这仅匹配大写A-G
。您可以使用a-g
代替A-G
来匹配小写。