java 验证是否为正确的邮箱格式

public class TestOne{
public static void main(String[] args){
 TestOne  t = new TestOne();
 String email = "73085044@qq.com.cn" ;
 boolean  isEmail = t.isEmail(email);
 if(isEmail){
  System.out.println(email +" is  a right email!!!");
 }else{
  System.out.println("error");
 }
}
public boolean isEmail(String email){
 //正则表达式
 /*     
   String regex = "^[A-Za-z]{1,40}@[A-Za-z0-9]{1,40}\\.[A-Za-z]{2,3}$";
   return email.matches(regex);
  */
  
 //不适用正则
 if(email==null||"".equals(email)) return false ;
 if(!containsOneWord('@',email)||!containsOneOrTwoWord('.',email)) return false;
 String prefix = email.substring(0,email.indexOf("@"));
 String middle = email.substring(email.indexOf("@")+1,email.indexOf("."));
 String subfix = email.substring(email.indexOf(".")+1);
 System.out.println(subfix);
 System.out.println("prefix="+prefix +"  middle="+middle+"  subfix="+subfix);
  
 if(prefix==null||prefix.length()>40||prefix.length()==0) return false ;
//  if(!isAllWords(prefix)) return false ;
 if(middle==null||middle.length()>40||middle.length()==0) return false ;
 if(!isAllWordsAndNo(middle)) return false ;
 if(subfix==null||subfix.length()> 9 ||subfix.length()<2) return false ;
//  if(!isAllWords(subfix)) return false ;
 return true ;
}
//判断字符串只包含指定的一个字符c
private boolean containsOneWord(char c , String word){
char[] array = word.toCharArray();
int count = 0 ;
for(Character ch : array){
if(c == ch) {
count++;
}
}
return count == 1;
}
 
//判断字符串只包含指定的一个字符c
private boolean containsOneOrTwoWord(char c , String word){
 char[] array = word.toCharArray();
 int count = 0 ;
 for(Character ch : array){
  if(c == ch) {
   count++;
  }
 }
 if (count == 1 || count ==2) {
 return true;
 }
 return false ;
}
//检查一个字符串是否全部是字母
// private boolean isAllWords(String prefix){
//  char[] array = prefix.toCharArray();
//  for(Character ch : array){
//   if(ch<'A' || ch>'z' || (ch<'a' && ch>'Z')) return false ;
//  }
//  return true;
// }
//检查一个字符串是否包含字母和数字
private boolean isAllWordsAndNo(String middle){
 char[] array = middle.toCharArray();
 for(Character ch : array){
  if(ch<'0' || ch > 'z') return false ;
  else if(ch >'9' && ch <'A') return false ;
  else if(ch >'Z' && ch <'a') return false ;
 }
 return true ;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值