public static int fuzzyCompare(String one, String two) {
        if (one.isEmpty()) {
            return 0;
        }
        if (two.isEmpty()) {
            return 0;
        }
        int j = 0;
        int score = 0;
        one = one.toLowerCase().trim();
        two = two.toLowerCase().trim();
        for (int i = 0; i < one.length(); i++) {
            //DEBUG
            //System.out.println("i ".concat(String.valueOf(i)).concat(" ").concat(String.valueOf(one.charAt(i))));
            //System.out.println("j ".concat(String.valueOf(j)).concat(" ").concat(String.valueOf(two.charAt(j))));
            if (one.charAt(i) == two.charAt(j)) {
                // side by side...
                if (j < (two.length() - 1)) {
                    j++;
                }
                score++;
            } else {
                if (j < (two.length() - 1)) {
                    if (one.charAt(i) == two.charAt(j + 1)) {
                        // move forward, align
                        j++;
                    }
                }
            }
        }
        int score_content = (score * 100) / one.length();
        int score_length;
        if (one.length() > two.length()) {
            score_length = (two.length() * 100) / one.length();
        } else {
            score_length = (one.length() * 100) / two.length();
        }
        //score = (score * one.length() * 100) / (two.length() * 100);
        return (score_content * score_length) / 100;
    }