比较两个字符串的相似度
在处理字符串中,有个这样的需求,如果两个字符串差不多或者差很多,就叫这两个字符串的相似度吧,程序可能需要做不一样的事情,
/** * 判断两个字符串的相似度%(完全相同返回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));
个人写的一个小算法,应该还有优化的空间;