我编写了一个方法,可以帮助匹配代表同一个人但以不同方式(全名或短版本)编写的名称,例如:
保罗萨缪尔森 – 史密斯和保罗史密斯将根据我的方法被认为是平等的:
private static boolean equalName(String name_2, String name_1){
boolean equality1 = true;
name_1 = name_1.replace("&", " ").replace("-", " ");
String [] names1 = name_1.split(" ");
for (int i = 0; i < names1.length ; i ++) {
if (!name_2.contains(names1[i])) {equality1 = false; break;}
}
boolean equality2 = true;
name_2 = name_2.replace("&", " ").replace("-", " ");
String [] names2 = name_2.split(" ");
for (int i = 0; i < names2.length ; i ++) {
if (!name_1.contains(names2[i])) {equality2 = false; break;}
}
return equality1 || equality2;
}
然而,如果名字中有拼写错误,我仍然会遇到问题,保罗萨缪尔森 – 史密斯和保罗史密斯就是同一个人.我的问题是,是否有任何API可以帮助解决可能的拼写错误?我怎样才能改进我的方法?