如何检查字符串的前四个字符是否为 A-G 而后三个字符是否为数字?
How to check if the first four characters of a string are A-G and the last 3 are numeric?
我一直在研究这个问题,我觉得最好将字符串(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 时,该代码将不起作用。我错过了什么?如果您想知道这里 checker(Name) 是:
public boolean checker(String name){
CourseAbrv = name.substring(0, 4);
System.out.println(CourseAbrv);
return false;
}
它returns没什么
将您的正则表达式更改为 Name.matches("[A-G]{4}-\d{3}")
。 [a-gA-G]
匹配单个字符。
注意:这只匹配大写 A-G
。您可以使用 a-g
而不是 A-G
来仅匹配小写字母。
我一直在研究这个问题,我觉得最好将字符串(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 时,该代码将不起作用。我错过了什么?如果您想知道这里 checker(Name) 是:
public boolean checker(String name){
CourseAbrv = name.substring(0, 4);
System.out.println(CourseAbrv);
return false;
}
它returns没什么
将您的正则表达式更改为 Name.matches("[A-G]{4}-\d{3}")
。 [a-gA-G]
匹配单个字符。
注意:这只匹配大写 A-G
。您可以使用 a-g
而不是 A-G
来仅匹配小写字母。