2 개의 문자열을 비교하여 비슷하거나 유사한 지, 그리고 얼마나 많은지 알아야합니다. 예를 들어, 문자열이 "5000002105416"
이고 "5000003205416"
과 비교하면 기호를 포함하는 두 문자열에서 일치하지 않는 기호가 2
이므로 결과는 0.85
이어야합니다. 그 이유는 바코드 스캐닝에 Zbar를 사용하고 때로는 약간 잘못된 결과를 낳기 때문에이 결과가 일치해야하는 일부 하드 코딩 된 태그와 유사한 지 여부를 확인해야합니다.문자열 유사성을 확인하는 방법
public static double compare(String string, String compareString){
int length = string.length();
int comLength = compareString.length();
int max = length;
int min = comLength;
int result = 0;
if (length < comLength){
max = comLength;
min = length;
}
for(int index = 0; index < min; index++){
if(string.charAt(index) == compareString.charAt(index)){
result++;
}
}
return (double)(result)/ (double)(max);
}
당신이
null
또는 빈 문자열을 삽입하면 원하지 않는, 그래서 만약이 다음과 같이 0을 반환 몇 가지 검사를 추가 할 수있는 몇 가지 오류가 발생합니다
:
하는 그들은 항상있을 것인가를 같은 길이? – MrB
문자열의 길이가 항상 같아서 다른 기호를 세면됩니다. 간단한 루프가 그 일을 할 것입니다. – talex
일부 버그 수정에 대한 답변이 업데이트되었습니다. 도움이되기를 바랍니다. ':)' –