I tried to simulate email validation without regular expression in java and wrote this code. I need help to improve efficiency of this code (or give me a better way to solve this issue please)
regular expression: ^[(a-zA-Z-0-9-\\_\\+\\.)]+@[(a-z-A-z)]+\\.[(a-zA-z)]{2,3}$
public static boolean isValidEmailAddress(String email) {
boolean flag1 = false;
boolean flag2=false;
boolean flag3=false;
int j=0;
char[] emailChars = email.toCharArray();
for (int i = 0; i < emailChars.length;) {
char c = emailChars[i];
if (Character.isLetterOrDigit(c)) {
i++;
if(flag1==true&&flag2==true){
j++;
}
} else if (c == '@' && flag1==false&&flag2==false && flag3==false) {
i++;
flag1=true;
} else if(c=='.' && flag1==true && flag2==false&&flag3==false){
i++;
flag2 = true;
}
if(j==2 || j==3){
flag3=true;
}
}
return flag1&&flag2&&flag3;
}