0

Java で翻訳を行おうとしています。二分木で辞書を管理していますが、英語とスペイン語などの翻訳辞書を管理しようとすると、「スペイン語」のような単語は「español」に翻訳されます。私が抱えている問題は、大文字と小文字を区別しない変換を行う必要があることです。この目的のために、string.toLowerCase() メソッドを選択しましたが、「Ñ」、「ñ」などの特殊文字や「é」などのアクセント ワードが削除されます。後でこのように文字列を比較します

str.toLowerCase(new Locale("es", "ES")).equals(dictionaryword.toLowerCase(new Locale("es", "ES")

たとえば、そのコードは true を返しません。

str = Español;
dictionaryword = español;

私の質問は、誰かがこの「エラー」を管理する方法を知っているかどうか、または私が何か間違っているかどうかです。また、試してみるべきかどうかわかりません

str.equalsIgnoreCase(dictionaryword)

私が使用している toLowerCase(Locale) の代わりに。

4

2 に答える 2

0

関数が機能しない場合toLowerCase(locale)は、自分で実装することを真剣にお勧めします。私たちが話しているのはスペイン語なので、注意が必要な特殊文字はわずかです。

于 2013-04-03T03:32:36.853 に答える
0

RegexReplace と StringReplace を見てください。

str = Regex.Replace(str, "Ñ", "ñ");
str = Regex.Replace(str, "[A-Z]", "[a-z]");
于 2013-04-03T03:50:16.523 に答える