問題文は次のようになります。
emailIdという文字列データ型を作成する必要があります
電子メール ID は、適切なセッター メソッドを使用して設定する必要があります。
電子メール ID チェックの検証ルールは、main() に実装する必要があります。
条件は次のとおりです。
メール ID の全体の長さは 3 より大きく 20 未満である必要があります。
emailId には、「@」の後に最小 1 個、最大 2 個の「.」を含める必要があります。文字。
「@」の前の部分文字列には、大文字、小文字、および「_」(アンダースコア) 記号の組み合わせを含める必要があります。
メール ID の最初の文字は大文字にする必要があります。
上記のすべての条件が有効な場合は、「電子メール ID は有効です」と表示されます。そうでない場合は、適切なエラー メッセージが表示されます。
これは私のコードです:
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("CFDV@gm.a.il.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;
//Condition 1
if((length>3 && length<20)== true)
flag1 = true;
else
flag1 = false;
//Condition 2
int temp = email.length();
if(email.contains("@")){
flag2=true;
int a=email.indexOf("@");
for(int i=a;i<temp;i++){
if(email.charAt(i)=='.'){
flag3=true;
count=count+1;
}
}
if(count<1||count>2){
flag4=false;
}
else{
flag4=true;
}
}
else{
flag2 =false;
System.out.println("No @ symbol present");
}
//Condition 3
if(email.matches("[A-Z a-z _]+@.*")) //Unable to get the right RegEx here!
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");
}
}
}
条件#2(ロジック?)と条件#3(RegExp部分)がわかりません。テストケースのいくつかは正しいように見えますが、残りは間違っています (#2 と esp #3 のロジックが間違っているためだと思います)。
正しい出力を得るには、ここでどのような変更を行う必要があるか教えてください。ありがとう!