猿问

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

我目前的代码是


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 个。同时也只有数字和字母。


红颜莎娜
浏览 267回答 2
2回答

慕的地10843

要检查某个电子邮件地址是否包含 @ 符号,这很简单:&nbsp;if (!email.contains("@")) System.out.println("Hey, now, emails do at least contain an @, you know!");要检查字符串长度是否在 5 到 15 之间,我们假设包含,因为您不是特定的:if (passw.length() < 5 || passw.length() > 15) System.out.println("5 to 15 characters please!");– 请注意,正如其他人所说,限制密码长度是愚蠢的。这样做是有原因的<schwarzenegger>,但都是坏的</schwarzenegger>。所以不要那样做。我认为这是家庭作业。看到作业问题假设写一张支票仍然很烦人,这是一种常见的行业愚蠢举动。有关密码散列、b-crypt、TOTP 等的更多详细信息,请阅读。在这里进行错误处理的正确方法是throws Exception像这样附加到您的主要内容上:public static void main(String[] args) throws Exception { ... }...至少,对于您不知道如何处理它的任何异常(并记录它并忽略它并没有正确处理异常。如果这就是您可以合理使用它的所有内容,然后不要,只需按照说明进行投掷即可)。

炎炎设计

你的规格对我来说不是很清楚,但据我了解,这段代码应该可以工作:// 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}");
随时随地看视频慕课网APP

相关分类

Java
我要回答