annotate src/de/mpiwg/anteater/ml/SimilarityHelper.java @ 4:dcc35f89dce3

include linneaus findings
author jdamerow
date Thu, 25 Oct 2012 15:25:08 -0700
parents 036535fcd179
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
036535fcd179 anteater
jdamerow
parents:
diff changeset
1 package de.mpiwg.anteater.ml;
036535fcd179 anteater
jdamerow
parents:
diff changeset
2
036535fcd179 anteater
jdamerow
parents:
diff changeset
3
036535fcd179 anteater
jdamerow
parents:
diff changeset
4 public class SimilarityHelper {
036535fcd179 anteater
jdamerow
parents:
diff changeset
5
036535fcd179 anteater
jdamerow
parents:
diff changeset
6 /**
036535fcd179 anteater
jdamerow
parents:
diff changeset
7 * Following method is based on
036535fcd179 anteater
jdamerow
parents:
diff changeset
8 * http://diggintojava.blogspot.com/2009/12/longest-matching-substring-in-java.html
036535fcd179 anteater
jdamerow
parents:
diff changeset
9 * @param s1
036535fcd179 anteater
jdamerow
parents:
diff changeset
10 * @param s2
036535fcd179 anteater
jdamerow
parents:
diff changeset
11 * @return biggest substring contained in both strings
036535fcd179 anteater
jdamerow
parents:
diff changeset
12 */
036535fcd179 anteater
jdamerow
parents:
diff changeset
13 public static String getBiggestSubstring(String s1, String s2) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
14 String sub = s1;
036535fcd179 anteater
jdamerow
parents:
diff changeset
15 int j = s1.length();
4
dcc35f89dce3 include linneaus findings
jdamerow
parents: 0
diff changeset
16
dcc35f89dce3 include linneaus findings
jdamerow
parents: 0
diff changeset
17 if (s1 == null || s2 == null)
dcc35f89dce3 include linneaus findings
jdamerow
parents: 0
diff changeset
18 return "";
0
036535fcd179 anteater
jdamerow
parents:
diff changeset
19
036535fcd179 anteater
jdamerow
parents:
diff changeset
20 String subString = "";
036535fcd179 anteater
jdamerow
parents:
diff changeset
21 String comparingString = s2;
036535fcd179 anteater
jdamerow
parents:
diff changeset
22 while (j >= 0) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
23 for (int i = 0; i < j; i++) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
24 sub = s1.substring(i, j);
036535fcd179 anteater
jdamerow
parents:
diff changeset
25 if (comparingString.contains(sub)) {
036535fcd179 anteater
jdamerow
parents:
diff changeset
26 if (sub.length() > subString.length())
036535fcd179 anteater
jdamerow
parents:
diff changeset
27 subString = sub;
036535fcd179 anteater
jdamerow
parents:
diff changeset
28 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
29 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
30 j--;
036535fcd179 anteater
jdamerow
parents:
diff changeset
31 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
32 return subString;
036535fcd179 anteater
jdamerow
parents:
diff changeset
33 }
036535fcd179 anteater
jdamerow
parents:
diff changeset
34 }