关于邮箱怎么验证是不是真实的企业邮箱(java汉字和英文呼唤)

企业邮箱的域名一般都是zhangsan@公司域名,或者zhang_san@公司域名这种形式。这里我只列举zhangsan@公司域名这种形式。

公司要我做一个企业邮箱的模糊匹配和验证,刚接到以为很难。结果网上一查,发现有类似Api。瞬间小case了。

引入jar包:pinyin4j-2.5.0.jar

一下代码是我自己随便写的,应该还可以优化,用了两个循环,因为我们汉子中包含了很多多音字啦。

/**
  * 单个汉子检查
  * @param chinese
  * @return
  */
 public static boolean checkSpell(String chinese,String mailAccount) {
  boolean result = false;
  try {
   //设置转换格式
   HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
   defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 设置大小写
   defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 设置无声调表示
   char[] arr = chinese.toCharArray();
   for (int j = 0; j < arr.length; j++) {
    result = false;
    //调用拼音Api
    String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(arr[j], defaultFormat);
    for (int i = 0; i < pinyin.length; i++) {
     //符合条件直接跳出循环
     if(mailAccount.startsWith(pinyin[i])){
      mailAccount = mailAccount.substring(mailAccount.indexOf(pinyin[i])+pinyin[i].length());
      result = true;
      break;
     }
    }
    if(result == true){
     continue;
    }
    return result;
   }
  } catch (BadHanyuPinyinOutputFormatCombination e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return result;
 }

public static void main(String[] args) {
  boolean result = checkSpell("长兴薄", "changxingbao@shyi.com");
  System.out.println(result);
  result = checkSpell("长兴薄", "chanxingbao@shyi.com");
  System.out.println(result);
  result = checkSpell("长兴薄", "changxingba@shyi.com");
  System.out.println(result);
  result = checkSpell("长兴薄", "changxinbao@shyi.com");
  System.out.println(result);
  result = checkSpell("长兴薄", "chanxingbao@shyi.com");
 }

版权所有,转载请注明出处。

原文地址:https://www.cnblogs.com/hisunhyx/p/4910760.html