关于邮箱怎么验证是不是真实的企业邮箱(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");
}
版权所有,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了