“管理”;“错误”;在string.toLowerCase()中使用特殊字符,如Ñ&引用;或É&引用;
我想用Java做一个翻译 我用二叉树管理字典,但当我试图翻译字典,如英语、西班牙语或西班牙语时,像“西班牙语”这样的单词会翻译成“西班牙语”。我的问题是我必须做一个不区分大小写的翻译。 为此,我选择string.toLowerCase()方法,但它会删除特殊字符,如“ñ”、“ñ”或重音词,如“é”。我以后会像这样比较字符串“管理”;“错误”;在string.toLowerCase()中使用特殊字符,如Ñ&引用;或É&引用;,string,special-characters,translate,string-matching,String,Special Characters,Translate,String Matching,我想用Java做一个翻译 我用二叉树管理字典,但当我试图翻译字典,如英语、西班牙语或西班牙语时,像“西班牙语”这样的单词会翻译成“西班牙语”。我的问题是我必须做一个不区分大小写的翻译。 为此,我选择string.toLowerCase()方法,但它会删除特殊字符,如“ñ”、“ñ”或重音词,如“é”。我以后会像这样比较字符串 str.toLowerCase(new Locale("es", "ES")).equals(dictionaryword.toLowerCase(new Locale("e
str.toLowerCase(new Locale("es", "ES")).equals(dictionaryword.toLowerCase(new Locale("es", "ES")
例如,如果
str = Español;
dictionaryword = español;
我的问题是,是否有人知道如何管理这个“错误”,或者我是否做错了什么。
还有,我不知道我是否应该试试
str.equalsIgnoreCase(dictionaryword)
如果您的
toLowerCase(Locale)
函数不起作用,我会认真建议您自己实现它。因为我们谈论的是西班牙语,所以只有几个特殊字符需要注意。看看RegexReplace和StringReplace
str = Regex.Replace(str, "Ñ", "ñ");
str = Regex.Replace(str, "[A-Z]", "[a-z]");
问题是它应该适用于任何语言,而不仅仅是西班牙语。但是谢谢,我会记住的。