我要尋找一個Java 5 lbrary這讓我比較一些文字如下行返回true:字符串比較圖書館
" foo bar " == "foo bar"
"foo\nbar" == "foo bar"
"foo\tbar" == "foo bar"
"féé bar" == "fee bar"
- 等上...
有什麼建議嗎?
我要尋找一個Java 5 lbrary這讓我比較一些文字如下行返回true:字符串比較圖書館
" foo bar " == "foo bar"
"foo\nbar" == "foo bar"
"foo\tbar" == "foo bar"
"féé bar" == "fee bar"
有什麼建議嗎?
我不認爲你會發現這些具體的規則庫。你必須自己編碼。對於某些規則,正則表達式甚至框架方法都可能有用,但對於最後一條規則,我認爲您必須爲這些特殊字符保留相等的Map
。然後,您必須遍歷字符串中的每個字符,然後使用此Map對它們進行比較。而且,由於您已經遍歷字符串,所以您可以在一次迭代中應用所有規則,避免使用正則表達式。
沒有完美的答案,但你的詳盡。但是,我使用replaceAll在正則表達式(f.i. [êéèë])中使用了一組char。 – enguerran 2010-01-06 15:32:21
聽起來像你想寫一種方法來根據你的規則「規範化」你的字符串,然後再比較它們。第一個規則使用trim
,其他人使用replace
或StringUtils.replaceChars()。
它不直接具有您指定的功能,但是你也能夠使用在谷歌,番石榴庫中找到的CharMatcher功能:http://code.google.com/p/guava-libraries/
在JDK 1.6中拍攝,您可以使用java.text.Normalizer刪除變音符號!以前這是Sun的內部類。 – 2010-01-06 16:53:24
你的意思就像一個正則表達式? – 2010-01-06 14:27:24
是的,就像一個正則表達式。但一體機。 – enguerran 2010-01-06 14:29:25
Java的'String.matches()'不夠嗎? – 2010-01-06 14:34:29