Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5d041fa

Browse files
authored
Add files via upload
Clean up the code and have it pass the check style.
1 parent fe887e2 commit 5d041fa

File tree

1 file changed

+41
-38
lines changed

1 file changed

+41
-38
lines changed

‎src/main/java/info/debatty/java/stringsimilarity/RatcliffObershelp.java

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525

2626
import info.debatty.java.stringsimilarity.interfaces.NormalizedStringSimilarity;
2727
import info.debatty.java.stringsimilarity.interfaces.NormalizedStringDistance;
28-
import java.util.*;
28+
import java.util.List;
29+
import java.util.ArrayList;
30+
import java.util.Iterator;
2931

3032
import net.jcip.annotations.Immutable;
3133

@@ -36,7 +38,8 @@
3638
* characters in the two strings. Matching characters are those in the longest
3739
* common subsequence plus, recursively, matching characters in the unmatched
3840
* region on either side of the longest common subsequence.
39-
* The Ratcliff/Obershelp distance is computed as 1 - Ratcliff/Obershelp similarity.
41+
* The Ratcliff/Obershelp distance is computed as 1 - Ratcliff/Obershelp
42+
* similarity.
4043
*
4144
* @author Ligi https://github.com/dxpux (as a patch for fuzzystring)
4245
* Ported to java from .net by denmase
@@ -53,32 +56,29 @@ public class RatcliffObershelp implements
5356
* @return The RatcliffObershelp similarity in the range [0, 1]
5457
* @throws NullPointerException if s1 or s2 is null.
5558
*/
56-
public final double similarity(String source, String target) {
57-
if (source == null) {
58-
throw new NullPointerException("source must not be null");
59+
public final double similarity(finalString s1, finalString s2) {
60+
if (s1 == null) {
61+
throw new NullPointerException("s1 must not be null");
5962
}
6063

61-
if (target == null) {
62-
throw new NullPointerException("target must not be null");
64+
if (s2 == null) {
65+
throw new NullPointerException("s2 must not be null");
6366
}
6467

65-
if (source.equals(target)) {
66-
return 1;
68+
if (s1.equals(s2)) {
69+
return 1.0d;
6770
}
6871

69-
List<String> matches; // = new ArrayList<>();
70-
matches = getMatchQueue(source, target);
71-
int sumOfMatches = 0;
72-
Iterator it;
73-
it = matches.iterator();
72+
List<String> matches = getMatchList(s1, s2);
73+
int sumofmatches = 0;
74+
Iterator it = matches.iterator();
7475

75-
// Display element by element using Iterator
7676
while (it.hasNext()) {
7777
String element = it.next().toString();
78-
//System.out.println(element);
79-
sumOfMatches += element.length();
78+
sumofmatches += element.length();
8079
}
81-
return 2.0d * sumOfMatches / (source.length() + target.length());
80+
81+
return 2.0d * sumofmatches / (s1.length() + s2.length());
8282
}
8383

8484
/**
@@ -90,41 +90,44 @@ public final double similarity(String source, String target) {
9090
* @throws NullPointerException if s1 or s2 is null.
9191
*/
9292
public final double distance(final String s1, final String s2) {
93-
return 1.0 - similarity(s1, s2);
93+
return 1.0d - similarity(s1, s2);
9494
}
9595

96-
private static List<String> getMatchQueue(String source, String target) {
96+
private static List<String> getMatchList(finalString s1, finalString s2) {
9797
List<String> list = new ArrayList<>();
98-
String match = frontMaxMatch(source, target);
98+
String match = frontMaxMatch(s1, s2);
99+
99100
if (match.length() > 0) {
100-
String frontSource = source.substring(0, source.indexOf(match));
101-
String frontTarget = target.substring(0, target.indexOf(match));
102-
List<String> frontQueue = getMatchQueue(frontSource, frontTarget);
101+
String frontsource = s1.substring(0, s1.indexOf(match));
102+
String fronttarget = s2.substring(0, s2.indexOf(match));
103+
List<String> frontqueue = getMatchList(frontsource, fronttarget);
103104

104-
String endSource = source.substring(source.indexOf(match) + match.length());
105-
String endTarget = target.substring(target.indexOf(match) + match.length());
106-
List<String> endQueue = getMatchQueue(endSource, endTarget);
105+
String endsource = s1.substring(s1.indexOf(match) + match.length());
106+
String endtarget = s2.substring(s2.indexOf(match) + match.length());
107+
List<String> endqueue = getMatchList(endsource, endtarget);
107108

108109
list.add(match);
109-
list.addAll(frontQueue);
110-
list.addAll(endQueue);
110+
list.addAll(frontqueue);
111+
list.addAll(endqueue);
111112
}
113+
112114
return list;
113115
}
114116

115-
private static String frontMaxMatch(String firstString, String secondString) {
117+
private static String frontMaxMatch(finalString s1, finalString s2) {
116118
int longest = 0;
117-
String longestSubstring = "";
119+
String longestsubstring = "";
118120

119-
for (int i = 0; i < firstString.length(); ++i) {
120-
for (int j = i + 1; j <= firstString.length(); ++j) {
121-
String substring = firstString.substring(i, j);
122-
if (secondString.contains(substring) && substring.length() > longest) {
121+
for (int i = 0; i < s1.length(); ++i) {
122+
for (int j = i + 1; j <= s1.length(); ++j) {
123+
String substring = s1.substring(i, j);
124+
if (s2.contains(substring) && substring.length() > longest) {
123125
longest = substring.length();
124-
longestSubstring = substring;
126+
longestsubstring = substring;
125127
}
126128
}
127129
}
128-
return longestSubstring;
130+
131+
return longestsubstring;
129132
}
130-
}
133+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /