問題 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();
    }

}

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