验证电子邮件地址的用户名部分

时间:2013-05-13 11:19:58

标签: java

考虑在main方法中的starter类中提供的电子邮件ID。

String emailId = "Hellooo_hell@gmail.com";

问题描述:

  1. emailId的总长度应为&gt; 3且<20。

  2. emailId必须包含“@”后跟最少1个,最多2个“。”字符。

  3. “@”之前的子字符串必须包含大写字母,小写字母和“_”(下划线)符号的组合。
  4. emailId的第一个字母必须是大写字母。
  5. 如果以上所有条件都有效,则必须显示成功消息或显示相应的ERROR消息。

    这是我不想要的代码。

    public class EmailCheck {
    String emailId;
    public void setEmailId(String emailId){
        this.emailId=emailId;
    }
    public String getEmailId(){
        return emailId;
    }
    public static void main(String[] args) {
        EmailCheck em = new EmailCheck();
        em.setEmailId("Hell_ooo@gmail.com");
        String email = em.getEmailId();
        int length = email.length();
        boolean flag1 = false;
        boolean flag2 = false;
        boolean flag3 = false;
        boolean flag4 = false;
        boolean flag5 = false;
        boolean flag6 = false;
        boolean flag7 = false;
        int count = 0;
        int count2 = 0;
    
        //Condition 1
        if((length>3 && length<20)== true)
            flag1 = true;
        else 
            flag1 = false;
    
        //Condition 2
        for(int i=0;i<length;i++){
            if(email.charAt(i)=='@'){
                flag2 = true;
                for(int j=i+1;j<length;j++){
                    if(email.charAt(j)=='.')
                      {
                       flag3 = true;    
                       count=++count;
                      }
                    else
                        flag3 = false;
                }
                if(count<1 || count>2)
                 {   
                     flag4 = false;
                     //System.out.println("Invalid position of special characters");
    
                 }
                else
                    flag4 = true;
    
            }
            else
                flag2 = false;
        }
    
        //Condition 3
        if(email.matches("[a-zA-Z_]+@.*")) 
            flag5 = true;
        else
            flag5 = false;
    
        //Condition4
        if(Character.isUpperCase(email.charAt(0))==true)
                flag6 = true;
        else
            flag6=false;
    
        if(flag1==true && flag2==true && flag3==true && flag4==true && flag5==true &&flag6==true)
            System.out.println("Email ID is valid");
        else{
            if(flag1==false)
                System.out.println("Inavlid length of Email ID");
            if(flag2==false||flag3==false||flag4==false)
                System.out.println("Invalid Position of Special Characters");
            if(flag5==false)
                System.out.println("Invalid combination for username");
            if(flag6==false)
                System.out.println("Invalid case of first letter");
        }
    
    
    }
    }
    

1 个答案:

答案 0 :(得分:2)

您可以使用matches

中的String方法
if(emailId.matches("[a-zA-Z_]+@.*")) {
    // ok matches;
} else {
    // does not match
}