比较两个字符串的相似度

在处理字符串中,有个这样的需求,如果两个字符串差不多或者差很多,就叫这两个字符串的相似度吧,程序可能需要做不一样的事情,

/**
     * 判断两个字符串的相似度%(完全相同返回100,没有相同的返回0)
     * 
     * @param str1
     * @param str2
     * @return
     */
    public static int getSame(String str1, String str2) {
        try {
            String s = "";
            float same = 0f;
            if (str1 != null && str2 != null) {
                for (int i = 0; i < str1.length(); i++) {
                    for (int j = 0; j < str2.length(); j++) {
                        if (str1.charAt(i) == str2.charAt(j))
                            s = s + str1.charAt(i);
                    }

                }
                int strLen = str1.length() > str2.length() ? str1.length()
                        : str2.length();
                java.text.NumberFormat formater = java.text.DecimalFormat
                        .getInstance();
                formater.setMaximumFractionDigits(2);
                same = Float.valueOf(formater.format(Float.valueOf(s.length())
                        / strLen));
            }
            return (int) (same * 100);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }

 

String str1="www.yishish.com";
            String str2="www.lingshij.com";
            System.out.println(StringUtil.getSame(str1, str2));

 

个人写的一个小算法,应该还有优化的空间;

posted @ 2012-08-09 18:05  stream1  阅读(648)  评论(0编辑  收藏  举报