import java.util.regex.Pattern;
class Main {
public static void main(String[] args) {
String s1 = "umam@-.co";
String s2 = "umam@email";
String s3 = "umam@email.co";
String s4 = "umam@email.co.";
String s5 = "umam@email.co.id";
String s6 = "umam@email.co.id-";
System.out.println(isValidEmailId(s1));
System.out.println(isValidEmailId(s2));
System.out.println(isValidEmailId(s3));
System.out.println(isValidEmailId(s4));
System.out.println(isValidEmailId(s5));
System.out.println(isValidEmailId(s6));
}
private static boolean isValidEmailId(String email) {
System.out.print(email + " => ");
return Pattern.compile("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])").matcher(email).matches();
}
}