我需要比较两个字符串并找出它们是否相似以及相似程度。例如我有一个字符串 "5000002105416"
,并与 "5000003205416"
相比它应该给我结果 0.85
因为只有 2
两个包含 13
的字符串中不匹配的符号符号。原因是我使用Zbar进行条码扫描,有时它会给我一个有点错误的结果,我需要检查这个结果是否与我需要匹配的一些硬编码标签相似。
最佳答案
假设您的 String
具有相同的长度,因此您需要一个迭代它们的函数,比较每个 char
并找出差异的数量:
double similarity(String a, String b) {
if(a.length() == 0) return 1;
int numberOfSimilarities = 0;
for(int i = 0; i < a.length(); ++i) {
if(a.charAt(i) == b.charAt(i)) {
++numberOfSimilarities;
}
}
return (double) numberOfSimilarities / a.length();
}
关于java - 如何检查字符串相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059553/