企业邮箱的域名一般都是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");
 }

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

最新文章

  1. WPF 开发 WebBrowser
  2. Web Mercator 公开的小秘密
  3. Centos6.5 python2.7连接mysql数据库
  4. Orchard源码分析(6):Shell相关
  5. 设计模式学习之工厂方法(Factory Method,创建型模式)(2)
  6. httpsClient抓取证书
  7. 断开SVN连接操作方法
  8. mysql位_01检查错误代码的方法
  9. H5常见的兼容问题及解决
  10. 转:Siri之父:语音交互或将主导未来十年发展
  11. NFS工作原理
  12. centos下网络的配置
  13. Deepin debian安装Libreoffice
  14. 爬虫之scrapy扩展
  15. java 基础 ----- Arrays 工具类
  16. H3 BPM J.V10.6.1 安装及快速使用手册
  17. spark高可用集群搭建及运行测试
  18. java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader
  19. linux 挂载windows下目录,其它linux机器nfs的目录,自己dd的文件
  20. Win10系统下编译OSG3.4

热门文章

  1. java学习日记20230227-java学习方法/转义字符/注释
  2. WDA学习(29):WDA &amp; HTML
  3. pgsql中over函数的应用
  4. java springboot项目树结构递归查询
  5. hadoop服务异常,磁盘坏道critical medium error,dev sdh,sector xxxx
  6. Java笔记_this关键字_HomeWork(9 - 题)
  7. 1. ansible学习总结: 基础模块
  8. JS中立即执行函数和闭包的区别
  9. Quartz 2D CGPattern学习笔记
  10. Java把List转成以逗号分隔的字符串