我认为这是一种更长,更乏味,更低效的检查方式:
private void checkPasswordSame() {
String first = password1.getText();
String second = password2.getText();
if (first.equals("")) {
System.out.println("Password can't be empty");
if ("".equals(second)) {
System.out.println("Second password is empty");
}
} else if (first.equals(second)) {
System.out.println("Passwords same");
} else {
System.out.println("Passwords not the same");
}
}
有没有办法可以用更少的行来做到这一点?
答案 0 :(得分:2)
如果您不关心哪个字段为空,因为两者都必须填写,您可以稍微简化空白检查:
private void checkPasswordSame() {
String first = password1.getText();
String second = password2.getText();
if (first.equals("") || second.equals("")) {
System.out.println("Both password can't be empty");
} else if (first.equals(second)) {
System.out.println("Passwords same");
} else {
System.out.println("Passwords not the same");
}
}
尽量不要专注于代码长度,这不是高尔夫编程;而是专注于代码可读性。如果它至少没有提供评论来解释这个棘手的部分,那么你所做的事应该对另一位读者来说应该是显而易见的。
作为一种风格问题,我更喜欢在处理正常情况之前先检查错误,但这取决于你:
private void checkPasswordSame() {
String first = password1.getText();
String second = password2.getText();
if (first.equals("") || second.equals("")) {
System.out.println("Both password can't be empty");
} else if (!first.equals(second)) {
System.out.println("Passwords not the same");
}
else {
System.out.println("Passwords same");
}
}
答案 1 :(得分:0)
你云离开这些界限:
if ("".equals(second)) {
System.out.println("Second password is empty");
}
如果第一个密码不为空,但第二个密码是用户将获得“密码不一样” - 在这种情况下,我认为这是一个真实而充分的信息。
答案 2 :(得分:0)
您可以切换检查方式: 1.匹配。 2.不空。
if (first.equals(second))
{
//check one is enough
if(first == null || first.isEmpty())
{
System.out.println("Password can't be empty");
}
else
{
System.out.println("Passwords same");
}
}
else
{
System.out.println("Passwords not the same");
}
答案 3 :(得分:0)
有效并不意味着更少的代码行。 您确定要使用代码行数较少的方法吗?或者你想要一个更快的方法? 下面你有一个更快的方法。
private void checkPasswordSame() {
final String first = password1.getText();
final String second = password2.getText();
final boolean firstIsEmpty = first.isEmpty();
final boolean secondIsEmpty = second.isEmpty();
if (firstIsEmpty) {
System.out.println("Password can't be empty");
}
if (secondIsEmpty) {
System.out.println("Second password is empty");
}
if (!firstIsEmpty && !secondIsEmpty) {
if (first.equals(second)) {
System.out.println("Passwords same");
} else {
System.out.println("Passwords not the same");
}
}
}
注意: