我正在制作注册计划。细节存储在文本文件中。如果用户输入已经拍摄的电子邮件,则该邮件应显示为“已注册电子邮件”。如果不是,则应将电子邮件写入文件。我已经编写了代码,但它总是说电子邮件已经注册并且没有写入文件。这有什么问题?我只能使用文件而不是数组或Hashmaps。这是我的代码,verify()用于验证电子邮件格式,duplicate()用于检查电子邮件的存在:
public static void main(String[] args) {
do {
System.out.println("Enter your e-mail");
email = input.nextLine();
check = validation(email);
if (check == false) {
System.out.println("Enter a valid email");
} else {
check = duplicate(email);
if (check == true) {
writer.write("Email : " + email);
writer.println();
} else {
System.out.println("E-mail already registered");
}
}
}
while (check == false);
}
public static boolean validation(String email) {
boolean valid = false;
if (email.contains("@")) {
if (email.contains(".com")) {
valid = true;
}
} else {
valid = false;
}
return valid;
}
答案 0 :(得分:0)
你的逻辑完全颠倒了。如果电子邮件已被使用,则duplicate
会返回true
。这意味着您的支票应该是:
check=duplicate(email);
if (!check) {
writer.write("Email : "+email);
writer.println();
} else {
System.out.println("E-mail already registered");
}
你应该给你的变量和方法更好的名字:
boolean isDuplicate = isMailAlreadyRegistered(email);
if (!isDuplicate) {
writer.write("Email : "+email);
writer.println();
} else {
System.out.println("E-mail already registered");
}