<分区>
我正在尝试用 Java 编写一个小程序,让用户输入四个字符串(用户名、电子邮件、密码、密码)。
程序应该在 while
循环中检查这些字符串是否满足某些条件,该循环要求用户输入上述字符串,直到它们满足这些条件。
程序编译成功,前两个 if
情况似乎运行良好。只有两个密码(password
和passcheck
)之间的比较似乎是错误的。即使我两次输入相同的字符串,它们也没有通过比较,我不知道这是为什么。
import java.util.Scanner;
public class Registry {
public static void main (String [] args){
Scanner scanner = new Scanner(System.in);
// Dialogue for the user to fill
System.out.println("Please enter your username (at least 5 characters)");
String username = scanner.nextLine();
System.out.println("Please enter a valid emailadress (an @ is necessary for it to pass.)");
String email = scanner.nextLine();
System.out.println("Please enter two matching passwords, so we can make sure that you entered them correctly.");
String password = scanner.nextLine();
String passcheck = scanner.nextLine();
boolean user = false;
boolean mail = false;
boolean pass = false;
// Error messages within a loop in order to make the user enter valid arguments.
while (user != true && mail != true && pass != true){
if ((username == "" || username.length() < 5) || (username == " " || username.length() < 5)) {
System.out.println("Username is empty or does not have enough characters! Please enter another.");
username = scanner.nextLine();
}
else{
user = true;
}
if (email.contains("@") == false){
System.out.println("Invalid Mailadress. Please enter again.");
email = scanner.nextLine();
}
else{
mail = true;
}
if(password == passcheck){
pass = true;
}
else if {
System.out.println("Your passwords do not match. Please enter them correctly.");
password = scanner.nextLine();
passcheck = scanner.nextLine();
}
}
}
}