rails 比较两个字符串的相似度
#比较两个字符串,然后返回两个字符串的相似度
#相似度以小数的形式返回
#比较方式为两个字符串中相同的最长的字符长度比上两个字符串中较短的那个字符串的长度
def self.compare_str(str1,str2)
i = 0;
str1_a = str1.downcase.split("") #比较不区分大小写,要区分的话去掉downcase
str2_a = str2.downcase.split("") #比较不区分大小写,要区分的话去掉downcase
max_len = 0
while((i+1) <= str1_a.size)
x = i
str1_a[x..str1_a.size].each_with_index do |s, index|
if str2_a.include?(s)
j = str2_a.index(s)
len = 0
while(str1_a[i] == str2_a[j] && (i+1) <= str1_a.size)
len += 1
i += 1
j += 1
end
if len > max_len
max_len = len
end
break
else
i += 1
end
end
end
if str1_a.size > str2_a.size
unless str2_a.size == 0
return ((max_len.to_f)/(str2.length)).round(2)
else
return 0
end
else
unless str1_a.size == 0
return ((max_len.to_f)/(str1.length)).round(2)
else
return 0
end
end
end