字符串比较库

时间:2010-01-06 14:26:21

标签: java string

我正在寻找一个Java 5 lbrary,让我比较一些文本,因为以下行返回true:

  • " foo bar " == "foo bar"
  • "foo\nbar" == "foo bar"
  • "foo\tbar" == "foo bar"
  • "féé bar" == "fee bar"
  • 等......

有什么建议吗?

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我认为您不会找到具有这些特定规则的库。你必须自己编码。对于某些规则,正则表达式甚至String框架方法都很有用,但是,对于最后一条规则,我认为你必须为这些特殊字符保持Map的相等性。然后,您将不得不遍历字符串中的每个字符,使用此Map比较它们。而且,既然你已经遍历了字符串,那么你可以在一次迭代中应用所有规则,避免使用正则表达式。

答案 2 :(得分:1)

在比较它们之前,听起来好像是想根据规则编写一个方法来“规范化”字符串。使用trim作为第一条规则,使用replaceStringUtils.replaceChars()作为其他规则。

答案 3 :(得分:1)

它没有直接指定的功能,但您也可以使用google-guava库中的CharMatcher函数:http://code.google.com/p/guava-libraries/

答案 4 :(得分:1)

ICU库中似乎有一些功能可以删除变音符号:

http://site.icu-project.org/

其余的你可以使用一个或多个正则表达式。