实训的练习题。。感觉不错就发上来了
testmail方法判断邮箱格式,正确返回true,错误返回false;Test方法对正确的邮箱输出域名及用户名,错误的输出错误提示
import java.util.Scanner;
public class TestMail {
private final static String NORMAL_LETTER = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
// 邮箱使用的字符
private static String mail;
public static boolean MailTest() {
Scanner input = new Scanner(System.in);
mail = input.nextLine();
if (mail.indexOf(" ") != -1){
//有空格的情况
System.out.print("您输入的邮箱中含有空格,");
return false;
}
else if (mail.indexOf("@") == -1 || mail.indexOf(".") == -1) {
//缺少 "@" 或 "." 的情况
return false;
} else if (mail.lastIndexOf("@") != mail.indexOf("@")
|| mail.lastIndexOf(".") != mail.indexOf(".")) {
//有多个 "@" 或 "." 的情况 p.s. 貌似多个 "." 可以
return false;
} else if (mail.indexOf(".") < mail.indexOf("@")) {
//"." 在 "@" 前面的情况
return false;
} else {
for (int i = 0; i < mail.indexOf("@"); i++) {
if (NORMAL_LETTER.indexOf(mail.substring(i, i)) == -1) {
// 有 '特殊字符' 的情况
return false;
}
}
}
// 若无以上情况, 返回true
return true;
}
public static void Result(){
if (MailTest()) {
int i = mail.indexOf("@");
String username = mail.substring(0, i);
String domain_name = mail.substring(i + 1);
System.out.println("该邮箱为合法邮箱");
System.out.println("用户名为:" + username);
System.out.println("域名为:" + domain_name);
} else {
System.out.println("所以您输入的不是合法邮箱");
}
}
}