java - 邮件地址验证JAVA

标签 java validation boolean character detection

我正在尝试编写一个小程序,要求用户输入电子邮件地址。然后我验证它是否是有效的电子邮件地址。就像“example@example.com”是有效的,但“example@@example.com.org”是无效的。

这是我的代码,我已经让它可以检测是否有 @ 和 .字符在那里,但我需要确保它只出现一次,并且 @ 出现在点 (.) 之前

 import java.util.Scanner;

public class email {
    public static void main(String args[])
    {
        Scanner skanni = new Scanner(System.in);

        System.out.println("Sládu inn email adressuna thína.");
        System.out.println("Email: ");
        String mail = skanni.nextLine();

        boolean b1=mail.contains("@") && mail.contains(".");

        if (b1)
        {
            System.out.println("This email is valid");
        }else{
            System.out.println("this email is invalid");
        }


    }
}

如果有人能提供帮助,我们将不胜感激!

编辑:感谢大家的回答和帮助。如果其他人将来会做类似的事情,我将在下面发布最终代码。哦,你可以忽略评论。你可能不会明白:)

import java.util.Scanner;
import java.util.regex.*;

public class email {
    public static void main(String args[])
    {
        Scanner skanni = new Scanner(System.in);

        System.out.println("Sládu inn email adressuna thína.");
        System.out.println("Email: ");
        String mail = skanni.nextLine();

        /*Skilgreining á eftirfarandi kóda
         * ^ táknid er byrjunin á strengnum
         * thad sem ég set innan sviga á eftir, er thad sem ég legg áherslu á í hverju sinni
         * [A-Za-z0-9] eru leyfilegir stafir í fyrsta lid emailsins, sbr: (birgir09)dæmi@gmail.com
         * + á milli táknar ad naesti svigi byrjar, thad er ad segja. (\\-[A-Za-z0-9-])
         * *@ táknar ad @ merkid er á milli sviganna
         * "[A-Za-z0-9] er thad sem kemur fyrir framan punktinn sbr. (gmail).com
         * (\\.[A-Za-z0-9]) er thad sem kemur fyrir aftan punkt sbr gmail.(com)
         */
        Pattern p = Pattern.compile("^[A-Za-z0-9-]+(\\-[A-Za-z0-9])*@"
                + "[A-Za-z0-9-]+(\\.[A-Za-z0-9])");
        Matcher m = p.matcher(mail);

        if (m.find())
        {
            System.out.println("Thetta email er loglegt.");
        }else{
            System.out.println("Thetta email er ekki loglegt.");
        }



    }
}

最佳答案

按照之前的指示使用 javax.mail api。

来自http://crunchify.com/how-to-validate-email-address-using-java-mail-api/

import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;

private boolean crunchifyEmailValidator(String email) {
    boolean isValid = false;
    try {
        //
        // Create InternetAddress object and validated the supplied
        // address which is this case is an email address.
        InternetAddress internetAddress = new InternetAddress(email);
        internetAddress.validate();
        isValid = true;
    } catch (AddressException e) {
        System.out.println("You are in catch block -- Exception Occurred for: " + email);
    }
    return isValid;
}

关于java - 邮件地址验证JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23598387/

相关文章:

java - 如何将Base64文件转换为javascript中的实际文件/原始文件并将其下载到客户端

java - Ant-task 不适用于 java 9

ruby-on-rails - Rails (RoR) ActiveRecord 自定义验证

boolean - 如何使用或门制作异或门?

java - Java 中的循环(初学者)

Javascript/Ember - 切换变量的 boolean 值

java - 如何阻止 java replaceAll() 删除反斜杠?

java - 使用 Hibernate 和 Spring Data JPA 激活 SQL 语句日志记录

validation - 使用 Omnifaces 进行跨领域验证 : "Enter X and Y or enter Z"

用于 JWT 验证的 JWK 的 Azure API 管理策略缓存