考慮在主方法的入門級中提供的電子郵件ID。驗證電子郵件地址的用戶名部分
String emailId = "[email protected]";
問題描述:
的EMAILID的總長度應> 3和< 20.
的EMAILID必須包括 「@」,後跟最少1最多2個「。」字符。
- 「@」之前的子串必須包含大寫字母,小寫字母和「_」(下劃線)符號的組合。
- emailId的第一個字母必須是大寫。
如果上述所有條件都有效,它必須顯示一條成功消息或應該顯示一條適當的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("[email protected]");
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_][email protected]*"))
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");
}
}
}
我強烈建議你尋找到正則表達式 – Terence 2013-05-13 11:22:24
你爲什麼要這麼做?電子郵件ID是不區分大小寫的:'Hellooo_hell'和'hELlOoO_HElL'是電子郵件遞送目的相同的用戶ID。下劃線也不是用戶名中的強制性字符。你真的想做什麼?你真的驗證電子郵件地址嗎?如果是,那麼你的做法是錯誤的。如果不是,那麼描述你的問題。 – 2013-05-13 11:23:01
下次請使用有意義的標題。 「Java方法和字符串」沒有提到你的問題。 – Jesper 2013-05-13 11:23:14