问题 G: 判断是否是合法邮箱(串)

问题 G: 判断是否是合法邮箱(串)

时间限制: 1 Sec  内存限制: 128 MB
提交: 1556  解决: 956
[提交] [状态] [命题人:外部导入]

题目描述

输入一个字符串,判断是否是合法邮箱(格式正确即可,不管是否真的存在)输入的只能是字母、数字、下划线、@以及.五种, @前后只能是字母或者数字,而且.后只能是com, 是则输出YES ,否则输出NO

输入

一串字符

输出

判断结果

样例输入 Copy

[email protected]

样例输出 Copy

YES

解法1:正则匹配,注意一点,[]内表示匹配某个字符,如果是字符串的话,就不要再用''或者双引号,会出错。

^表示开始,$表示结束。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner scan = new Scanner(System.in);
        //int n = scan.nextInt();
        String temp = scan.nextLine();
        //String later = scan.next();
        //int n = scan.nextInt();
        if(temp.matches("^(([0-9])|([a-zA-Z]))+[@]{1}(([a-zA-Z])|([0-9]))+[.]{1}com{1}$")) {
            System.out.println("YES");
        }else {
            System.out.println("NO");
        }
    }

}
解法2:


import java.util.Scanner;


public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        int flag1=0;
        int flag2=0;
        int ct1=0,ct2=0;
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)=='@'||('a'<=str.charAt(i)&&str.charAt(i)<='z')||('A'<=str.charAt(i)&&str.charAt(i)<='Z')||('0'<=str.charAt(i)&&str.charAt(i)<='9')||str.charAt(i)=='.'||str.charAt(i)=='_'){
                flag1=1;//说明符号没有问题
            }
            if(str.charAt(i)=='.'){
                ct1=i;
            }
            if(str.charAt(i)=='@'){
                ct2=i;
            }
        }
        
        if(ct1!=0&&ct2!=0&&flag1==1){
            if(ct2+1==ct1){
                System.out.println("NO");
            }else if(str.substring(ct1+1).equals("com")){
                System.out.println("YES");
            }else {
                System.out.println("NO");
            }
        }else {
            System.out.println("NO");
        }
        System.out.println();
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章