이 기사에서는 Java String 유사성 알고리즘에 대해 설명합니다. 참조를 위해 공유하십시오. 특정 구현 방법은 다음과 같습니다.
다음과 같이 코드를 복사하십시오 : 공개 클래스 Levenshtein {
private int compare (string str, string target) {
int d [] []; // 매트릭스
int n = str.length ();
int m = target.length ();
int i; // 트래징
int J; // 트래스칼 대상
char ch1; / str
char ch2; / 대상
int temp;
if (n == 0) {
반환 m;
}
if (m == 0) {
리턴 n;
}
d = new int [n + 1] [m + 1];
for (i = 0; i <= n; i ++) {// 첫 번째 열을 초기화합니다.
d [i] [0] = i;
}
for (j = 0; j <= m; j ++) {// 첫 번째 줄을 초기화합니다.
d [0] [J] = J;
}
for (i = 1; i <= n; i ++) {// 트래버스 str
ch1 = str.charat (i -1);
// 대상과 일치합니다
for (j = 1; j <= m; j ++) {
ch2 = target.charat (j -1);
if (ch1 == ch2) {
온도 = 0;
} 또 다른 {
온도 = 1;
}
// 왼쪽의 +1, 상단의 +1, 왼쪽 상단 모서리의 온도 +최소값
d [i] [j] = min (d [i -1] [j] + 1, d [i] [J -1] + 1, d [i -1] [j -1] + 온도);
}
}
반환 d [n] [m];
}
Private Int Min (int one, int two, int 3) {
return (One = one <two? one : two) <3 : 3;
}
/**
* 두 줄의 유사성을 얻으십시오
*
* @param str
* @param 대상
*
* @반품
*/
public float getsimilarityRatio (String Str, String Target) {
반환 1- (float) 비교 (str, target) / math.max (str.length (), target.length ());
}
public static void main (String [] args) {
LEVENSHTEIN LT = NEW LEVENSHTEIN ();
문자열 str = "ab";
문자열 대상 = "ac";
System.out.println ( "유사성 Ratio =" + lt.getSimilarityRatio (str, target));
}
}
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.