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

看看 RegexReplace 和 StringReplace。

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

如果您的toLowerCase(locale)功能不起作用,我会认真建议您自己实现它。由于我们正在谈论的是西班牙语,因此您应该注意一些特殊字符。

于 2013-04-03T03:32:36.853 回答