实验1:邮箱地址的验证
实验目的:练习String类的各种方法的使用。
实验要求:
用命令行的方式输入电子邮箱,然后请验证邮箱格式是否正确。
1.邮箱里面必须包含‘.’或者@符号
2.'.'必须在@符号之后。
3.'.'和@符号不能是在第一位。
4.邮箱的长度必须大于8。
符合条件则输出:邮箱格式正确,否则输出“邮箱格式不对,并给出错在哪里的信息”

解决方案 »

  1.   

    import java.util.Scanner;
    public class EmailCheck { public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    String email = sc.next();
    if(email.length() <= 8){
    System.out.println("邮箱格式不对,长度必须大于8");
    }else if(!email.contains(".")){
    System.out.println("邮箱格式不对,邮箱里面必须包含‘.’符号");
    }else if(!email.contains("@")){
    System.out.println("邮箱格式不对,邮箱里面必须包含‘@’符号");
    }else if(email.charAt(0) == '.' || email.charAt(0) == '@'){
    System.out.println("邮箱格式不对,'.'和@符号不能是在第一位");
    }else{
    System.out.println("邮箱格式正确");
    }
    }
    }
      

  2.   

    再加上else if(s.indexOf("@")>.s.indexOf(".")){
      System.out.println("邮箱格式不对,'.'必须在@符号之后");
    }
      

  3.   

    确实可以用正则,但是人家的实验目的是练习String类的各种方法的使用,有点偷懒这样。
      

  4.   

    恩,正则会省很多事,学着写了个。可以凑合着用。
    public static void main(String[] args) {
    String email = "[email protected]";
    Matcher m = Pattern.compile("^[^@\\.][^.]+?@{1}[^@\\.]+(\\.[^@\\.]{2,3}){1,2}").matcher(email);
    System.out.println(m.matches());
    }