重複の可能性:私は 'クロエ' や「クロエのようであるかもしれないJavaで文字列を比較する必要が
Java. Ignore accents when comparing strings
Java string searching ignoring accentsのJava Unicodeの比較
こんにちはすべて
' 私はそれらが等しいことが必要です。 誰もがベストプラクティスを知っていますか?または、サードパーティのライブラリがありますか?
ローマ
重複の可能性:私は 'クロエ' や「クロエのようであるかもしれないJavaで文字列を比較する必要が
Java. Ignore accents when comparing strings
Java string searching ignoring accentsのJava Unicodeの比較
こんにちはすべて
' 私はそれらが等しいことが必要です。 誰もがベストプラクティスを知っていますか?または、サードパーティのライブラリがありますか?
ローマ
私たちは、比較の前に、特殊文字とそれに相当するASCII文字の間にハードコーディングされたマッピングで「クロエ」に文字列「クロエ」を翻訳します。それはかなりうまくいくが、不器用で、おそらく、我々が忘れてしまったいくつかの特殊文字があるだろう。
当社のソリューションは、このようなものになります。だから私はこの1つの良い答えについて興味
public static String replaceAccents(String string) {
String result = null;
if (string != null) {
result = string;
result = result.replaceAll("[àáâãåä]", "a");
result = result.replaceAll("[ç]", "c");
result = result.replaceAll("[èéêë]", "e");
result = result.replaceAll("[ìíîï]", "i");
result = result.replaceAll("[ñ]", "n");
result = result.replaceAll("[òóôõö]", "o");
result = result.replaceAll("[ùúûü]", "u");
result = result.replaceAll("[ÿý]", "y");
result = result.replaceAll("[ÀÁÂÃÅÄ]", "A");
result = result.replaceAll("[Ç]", "C");
result = result.replaceAll("[ÈÉÊË]", "E");
result = result.replaceAll("[ÌÍÎÏ]", "I");
result = result.replaceAll("[Ñ]", "N");
result = result.replaceAll("[ÒÓÔÕÖ]", "O");
result = result.replaceAll("[ÙÚÛÜ]", "U");
result = result.replaceAll("[Ý]", "Y");
}
return result;
}
を!
International Components for Unicodeをご覧ください。必要な処理を行うことができます。
編集:ここにいくつかのサンプルコードは(のCollatorのJavadocから)あなたが始めるためにです:
// Get the Collator for US English and set its strength to PRIMARY
Collator usCollator = Collator.getInstance(Locale.US);
usCollator.setStrength(Collator.PRIMARY);
if (usCollator.compare("abc", "ABC") == 0) {
System.out.println("Strings are equivalent");
}
これは唯一の正解です。 – tchrist
何のApache CommonsのからstripAccentについて?
Removes the accents from a string.
NOTE: This is a JDK 1.6 method, it will fail on JDK 1.5.
StringUtils.stripAccents(null) = null
StringUtils.stripAccents("") = ""
StringUtils.stripAccents("control") = "control"
StringUtils.stripAccents("&ecute;clair") = "eclair"
Parameters:
input - String to be stripped
Returns:
String without accents on the text
彼らは、あなたがそれを実際に
いいですね。残念ながら、commons-lang 3.0はいつまでもベータ状態になっています...彼らが最終的にその新しいバージョンをリリースする時期は誰が知っていますか? –
とにかく試してみるすることもできますUnicodeエンコーディングに言及(とのみHTMLの例を与える)していない第二はフランスでない限り、彼らは、同じではありません英語のもの(つまり、翻訳して比較する必要があります)。 –