【发布时间】:2018-02-01 14:12:05
【问题描述】:
我想将文件 2 上的每个字母与文件 1 进行比较。 示例:
文件 1:我的名字
文件 2:min@mes
我想在文件 2 上获得差异数为 3:(i、@ 和 s)。 你能帮帮我吗
这是我的代码
public float getCER(String originalteks,String extractteks){
int end=0;
int start=0;
int different_char=0;
if(originalteks.length()!=extractteks.length()){
different_char=Math.abs(originalteks.length()-extractteks.length());
}
while(start<end){
if(originalteks.charAt(start)!=originalteks.charAt(start++))
different_char++;//jumlah diferent chart
}
return (float) different_char/originalteks.length();
}
而且它只计算字符数,而不是不同的字符。
【问题讨论】:
-
文件是否保证字符数相同?如果不是,你想如何处理字符的插入或删除?您是否只对职位差异感兴趣?你想要Levenshtein distance 之类的东西吗?如果是这样,请参阅this question。
-
你不应该初始化
end吗?从这段代码中,end始终为 0,因此while(start<end)不会运行... -
如果您在计算字母,为什么该方法返回浮点数?可以数半个字母吗?