如何在两个字符串方法中使用AND



当我尝试执行程序时,它只适用于@,但它不检查。com或。ca。我该如何解决这个问题?

System. out.println("Enter your email:");
email = input.next();
while (!email.contains("@") && !email.endsWith(".com") || !email.contains("@") && !email.endsWith(".ca"))
{
System. out.println("Your email is not valid");
return;
}

基本上我的电子邮件应该同时包含@和.com或@和.ca,否则会显示email是无效的。

您需要更改一个逻辑操作。||代替&&.

while (!email.contains("@") || !email.endsWith(".com") || !email.endsWith(".ca"))
{
System. out.println("Your email is not valid");
return;
}

在你的情况下,如果你有@,但没有。com(例如),那么你会得到假的结果(因为&&),你的循环将结束。