【发布时间】:2016-10-06 21:47:47
【问题描述】:
我正在使用 gui 编写一个程序,该程序将验证邮政编码的格式是否正确,例如 K2S、1W3。但是,如果我输入类似 K2S 1W3333333 的内容,它仍然会验证它。这是我的程序:
@Override
public void mouseClicked(MouseEvent arg0) {
String postal =txtInput.getText() ;
boolean error_found = false;
for (int j = 0; j < postal.length(); j++){
//check if charAt j is a letter
if (j == 0 || j == 2 || j == 5){
if (postal.charAt(j) >= 65 && postal.charAt(j) <= 90){
;
}
else
error_found = true;
}
//check if charAt j is a number
if(j == 1 || j == 4 || j == 6){
if (postal.charAt(j) >= 48 && postal.charAt(j) <= 57){
;
}
else
error_found = true;
}
}
if (error_found == true){
lblResult.setText("Error, please try again. Make sure your code is capital letters and numbers only and 6 characters. Ex: K2S 1W3");
}
else
{
lblResult.setText("That code is valid!");
}
}
});
} }
【问题讨论】:
-
你考虑过使用正则表达式吗?看来您可能是编程新手。那是你最好的方法。如果这是一个班级作业并且您不能使用正则表达式,那么您需要维护一个字符计数器。
-
不要使用
>= 65、<= 90、>= 48和<= 57。它掩盖了意图。使用>= 'A'、<= 'Z'、>= '0'和<= '9'。 -
@Andreas 我会,但老师要我那样做。
-
哇,老师真笨,要求任何查看代码的人都必须记住 ASCII 表才能理解代码,而这种语言使得编写自文档变得如此容易。跨度>
标签: java postal-code