我正在尝试用Java编写翻译器 我管理二叉树中的字典,但是当我尝试管理英语 - 西班牙语等翻译词典时,或者像“西班牙语”这样的词汇翻译成“español”。我遇到的问题是我必须做一个非区分大小写的翻译。 为此,我选择了string.toLowerCase()方法,但它删除了特殊字符,如“Ñ”,“ñ”或重音词“é”。我稍后会像这样比较字符串
str.toLowerCase(new Locale("es", "ES")).equals(dictionaryword.toLowerCase(new Locale("es", "ES")
如果例如
,那段代码不会返回truestr = Español;
dictionaryword = español;
我的问题是,如果有人知道如何管理这个“错误”或者我做错了什么。 另外,我不知道我是否应该尝试
str.equalsIgnoreCase(dictionaryword)
而不是我正在使用的toLowerCase(Locale)。
答案 0 :(得分:0)
如果您的toLowerCase(locale)
功能不起作用,我会认真建议您自己实施。由于我们所说的是西班牙语,因此只需要处理几个特殊字符。
答案 1 :(得分:0)
看一下RegexReplace和StringReplace。
str = Regex.Replace(str, "Ñ", "ñ");
str = Regex.Replace(str, "[A-Z]", "[a-z]");