为了账号安全,请及时绑定邮箱和手机立即绑定

我如何要求电子邮件地址的 @ 和密码超过 5 个字符但小于 15 个字符

我如何要求电子邮件地址的 @ 和密码超过 5 个字符但小于 15 个字符

红颜莎娜 2021-09-12 16:47:12
我目前的代码是import java.io.*;import java.security.acl.NotOwnerException;import java.util.Scanner;class Main {  public static void main(String args[])  {    System.out.print("Enter username: ");    Scanner scanner = new Scanner(System.in);    String username = scanner.nextLine();    System.out.print("Enter email: ");    Scanner scanner2 = new Scanner(System.in);    String email = scanner.nextLine();    System.out.print("Enter password: ");    Scanner scanner3 = new Scanner(System.in);    String password = scanner.nextLine();    try(FileWriter fw = new FileWriter("passwords.txt", true);    BufferedWriter bw = new BufferedWriter(fw);    PrintWriter out = new PrintWriter(bw)){    out.print(username);    out.print(":");    out.print(email);    out.print(":");    out.print(password);    out.println("");} catch (IOException e) {    //exception handling left as an exercise for the reader}  }}我想要如果 String email != 以 @gmail.com 或 @yahoo.com 等结尾。但也要求他们的名字只能是数字和字母。我还想要求用户拥有超过 5 个字符但少于 15 个字符的密码,同时也只允许使用字母和数字。我还希望用户名超过 3 个字符且少于 13 个。同时也只有数字和字母。
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

  1. 要检查某个电子邮件地址是否包含 @ 符号,这很简单: if (!email.contains("@")) System.out.println("Hey, now, emails do at least contain an @, you know!");

  2. 要检查字符串长度是否在 5 到 15 之间,我们假设包含,因为您不是特定的:if (passw.length() < 5 || passw.length() > 15) System.out.println("5 to 15 characters please!");– 请注意,正如其他人所说,限制密码长度是愚蠢的。这样做是有原因的<schwarzenegger>,但都是坏的</schwarzenegger>。所以不要那样做。我认为这是家庭作业。看到作业问题假设写一张支票仍然很烦人,这是一种常见的行业愚蠢举动。有关密码散列、b-crypt、TOTP 等的更多详细信息,请阅读。

  3. 在这里进行错误处理的正确方法是throws Exception像这样附加到您的主要内容上:public static void main(String[] args) throws Exception { ... }...至少,对于您不知道如何处理它的任何异常(并记录它并忽略它并没有正确处理异常。如果这就是您可以合理使用它的所有内容,然后不要,只需按照说明进行投掷即可)。


查看完整回答
反对 回复 2021-09-12
?
炎炎设计

TA贡献1808条经验 获得超4个赞

你的规格对我来说不是很清楚,但据我了解,这段代码应该可以工作:


// username should be an alphanumeric string of length 4 to 12.

username.matches("[\\p{Alnum}]{4,12}");

// email should be alphanumeric characters followed by an '@' symbol followed by a domain name.

// The standard domain name specification allows for alphanumeric characters or a hyphen as long as the hyphen doesn't start or end the domain name.

email.matches("[\\p{Alnum}]+@[\\p{Alnum}]+(-[\\p{Alnum}]+)*(\\.[\\p{Alnum}]+(-[\\p{Alnum}]+)*)+");

// password should be an alphanumeric string of length 6 to 14.

password.matches("[\\p{Alnum}]{6,14}");


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信