我有一个主题代码,例如:ABC123是string
我需要确保长度为6,前3个字母为字母,后3个为数字。
我想尝试在if
声明中完成所有操作?我可以工作的长度,但无法弄清楚数字和字母的一部分。 e.g:
public void isValidCode(String subjectCode2){
str = subjectCode2;
if (str.length() == 6 && """"NEED TO TEST OTHERS HERE??""" ) {
System.out.println("The code is valid");
}
else {
System.out.println("The code is not valid");
}
答案 0 :(得分:8)
您始终可以使用正则表达式和matches()
类的String
方法。
if (str.matches("[a-zA-Z]{3}[0-9]{3}")) {
// Validation succeeded
}
else {
// Validation failed
}
答案 1 :(得分:2)
要测试前三个字母是否为字母,您可以使用循环。同样,使用循环测试最后三位数是否为数字。您可能会发现Character
类中的函数很有用。
答案 2 :(得分:1)
我会改变方法签名,使它不是一个void方法,而是声明返回一个布尔值。那么你可以有几个if语句,如果false返回false。在底部,如果通过所有测试,则返回true。
public boolean isValidCode(String code) {
if (code.length() != 6) {
return false;
}
// here check if first 3 chars are letters
// here check if last 3 chars are numbers
return true;
}
然后,如果需要,调用代码可以执行println。
String test = "ABC123";
if (isValidCode(test)) {
System.out.println("The code is valid");
} else {
System.out.println("The code is not valid");
}
答案 3 :(得分:0)
如果用#34;字母",你的意思是用英文以外的字母包含字母,你就需要这个。
if (str.matches("\\p{L}{3}\\d{3}")) {
此处,\p{L}
匹配Unicode认为是任何语言的字母的任何字符。