不用正则表达式判断邮箱地址是否合法

package demo3_7;

public class CheckEmail {

	/*
	 * 
		用Scanner,String判断邮箱地址是否符合规则
		有且只有一个@
		首字母必须是字母/_
		其他字母,字母/数字/_
		@后是域名,长度1--10之间
		域名后缀com/com.cn/cn
	 */
	public static void main(String[] args) {
		String[] emails = new String[]{
				"dsfadd@[email protected]",
				"sdffd#[email protected]",
				"dsfdscom.com.cn",
				"[email protected]",
				"@wee.cn",
				"  @wee.cn@",
				"[email protected]"
		};
		
		for(int i=0; iemail.indexOf("@")) {
			//@和.之间的子字符串的长度<=10
			String subString = email.substring(email.indexOf("@")+1,email.indexOf("."));
			if(subString.length()<=10) {
				flag = true;
			}
		}
		return flag;
	}

	/**
	 * 判断其他字母
	 * 	切割子字符串,0到第一个.的位置
	 * @param string
	 * @return
	 */
	private static boolean checkOther(String email) {
		boolean flag = true;
		if(email.indexOf(".")>0) {
			String subString = email.substring(0, email.indexOf("."));
			System.out.println("subString:"+subString);
			
			char[] chars = subString.toCharArray();
			//跳过首字母
			
			for(int i=1; i=65&&a<=90)||(a==95)||(a>=97&&a<=122)||(a>=48&&a<=57))) {
					flag = false;
				}
			}
		} else {
			flag = false;
		}
		return flag;
	}

	/**
	 * 判断首字母,是字母或者下划线
	 * @param string
	 * @return
	 */
	private static boolean checkFirst(String email) {
		boolean flag = false;
		char c = email.charAt(0);
		int i = c;
		if((i>=65&&i<=90)||(i==95)||(i>=97&&i<=122)) {
			flag = true;
		}
		
		return flag;
	}
	/**
	 * 检查email地址中有且只有一个@符号,并@前后都应该有内容
	 * @param string
	 * @return
	 */
	private static boolean checkAt(String email) {
		boolean flag = true;
		if(email.indexOf("@")>0&&(email.indexOf("@")==email.lastIndexOf("@"))) {
			//只有一个@符号
			String[] strs = email.split("@");
			for (int i = 0; i < strs.length; i++) {
				if(strs[i].trim().length()==0) {
					flag = false;
					break;
				}
			}
		} else {
			flag = false;
		}
		return flag;
	}
	
}

你可能感兴趣的:(不用正则表达式判断邮箱地址是否合法)