发现commons-lang 中有实现:
StringUtils.class
public static double getJaroWinklerDistance(final CharSequence first, final CharSequence second) {
    final double DEFAULT_SCALING_FACTOR = 0.1;
    if (first == null || second == null) {
        throw new IllegalArgumentException("Strings must not be null");
    }
    final double jaro = score(first,second);
    final int cl = commonPrefixLength(first, second);
    final double matchScore = Math.round((jaro + (DEFAULT_SCALING_FACTOR * cl * (1.0 - jaro))) *100.0)/100.0;
    return  matchScore;
}原文:http://www.cnblogs.com/lykm02/p/6023608.html