检查字符串相等性,忽略某些模式

时间:2016-02-09 03:14:02

标签: java regex string

我有两个90%相等的字符串,但我想忽略它们不相等的10%。例如。

String s1 = "Hi my name is Bob. About me: Useless information. I am a male."

String s2 = "Hi my name is Bob. About me: Different useless information. I am a male."

即使这两个字符串不同,我想要一种方法来比较字符串并返回true它们是相等的。解决这个问题的最佳方法是什么。是否有任何已经存在的字符串实用程序可以帮助我实现这种效果?

2 个答案:

答案 0 :(得分:0)

java中有一个名为LevenshteinDistance.java的实现。

它计算两个不同字符串之间的相似性百分比。

希望这会有所帮助。 =)

Wiki Reference

答案 1 :(得分:0)

通过java.util.regex.Patternjava.util.regex.Matcher类使用正则表达式,您可以在正则表达式中创建组以选择需要匹配的详细信息。

例如,您的正则表达式可能如下所示:"Hi my name is \(.*\)\. About me: \(.*\)\. I am a \(.*\)\."。然后你可以使用Matcher.group(int)方法并比较两个字符串之间的组中的值,假设两个字符串首先匹配正则表达式。

我的正则表达式示例可能并不完美,但希望您能得到这个想法。