2010-01-06 41 views
1

我要尋找一個Java 5 lbrary這讓我比較一些文字如下行返回true:字符串比較圖書館

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

有什麼建議嗎?

+2

你的意思就像一個正則表達式? – 2010-01-06 14:27:24

+0

是的,就像一個正則表達式。但一體機。 – enguerran 2010-01-06 14:29:25

+0

Java的'String.matches()'不夠嗎? – 2010-01-06 14:34:29

回答

1

我不認爲你會發現這些具體的規則庫。你必須自己編碼。對於某些規則,正則表達式甚至框架方法都可能有用,但對於最後一條規則,我認爲您必須爲這些特殊字符保留相等的Map。然後,您必須遍歷字符串中的每個字符,然後使用此Map對它們進行比較。而且,由於您已經遍歷字符串,所以您可以在一次迭代中應用所有規則,避免使用正則表達式。

+0

沒有完美的答案,但你的詳盡。但是,我使用replaceAll在正則表達式(f.i. [êéèë])中使用了一組char。 – enguerran 2010-01-06 15:32:21

1

聽起來像你想寫一種方法來根據你的規則「規範化」你的字符串,然後再比較它們。第一個規則使用trim,其他人使用replaceStringUtils.replaceChars()

1

似乎有在ICU庫刪除變音功能標記:

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

其餘的你也許可以做一個或多個正則表達式。

+1

在JDK 1.6中拍攝,您可以使用java.text.Normalizer刪除變音符號!以前這是Sun的內部類。 – 2010-01-06 16:53:24