Eigentlich sollte meine Methode deine aufrufen (hammingDistance(...)):
[code=Java]public class Foo {
public static void main(String[] args) {
String a = "anatolien";
String b = "toll";
System.out.println(hammingDistance(a, b));
}
public static int hammingDistance(String a, String b) {
String longStr = a.length() > b.length() ? a : b;
String shortStr = a.length() > b.length() ? b : a;
int distance = Integer.MAX_VALUE; // da distance sicher im 1. Schleifendurchgang gesetzt werden soll,
// wird hier distance auf denn grösstmöglichen Wert gesetzt
for (int i = 0; i < longStr.length() - shortStr.length(); i++) {
int actDist = hammingDistanceSameLength(longStr.substring(i, i + shortStr.length()), shortStr);
distance = Math.min(actDist, distance); // gibt die kleinere von beiden Zahlen zurück
}
return distance;
}
public static int hammingDistanceSameLength(String a, String b) {
int countSubstitutions = 0;
for (int i = 0; i < a.length(); i++) {
if (a.charAt(i) != b.charAt(i)) {
countSubstitutions++;
}
}
return countSubstitutions;
}
}[/code]