Java 如何比较带有特殊字符(如ü;)的字符串ćš;等

Java 如何比较带有特殊字符(如ü;)的字符串ćš;等,java,android,sqlite,Java,Android,Sqlite,我从sqlite数据库导入了一些文本,然后将该文本设置为某个按钮。现在,我有一些文本,比如门钦、斯坦科维奇或卡扎利什特。你明白了。用户必须猜出正确的答案,我解决了用户插入小写单词时的问题,我的单词首字母大写。我只是把我的单词和他输入的单词转换成大写。但是,即使用户输入Munchen、Stankovic或Kazaliste,而我的数据库中没有这些特殊字母,如何接受答案呢?尝试使用collator 排序规则定义字符串的排序顺序。这些规则各不相同 使用locale,因为不同的自然语言对单词的排序不同

我从sqlite数据库导入了一些文本,然后将该文本设置为某个按钮。现在,我有一些文本,比如门钦、斯坦科维奇或卡扎利什特。你明白了。用户必须猜出正确的答案,我解决了用户插入小写单词时的问题,我的单词首字母大写。我只是把我的单词和他输入的单词转换成大写。但是,即使用户输入Munchen、Stankovic或Kazaliste,而我的数据库中没有这些特殊字母,如何接受答案呢?

尝试使用collator

排序规则定义字符串的排序顺序。这些规则各不相同 使用locale,因为不同的自然语言对单词的排序不同。 您可以使用Collator提供的预定义排序规则 类以独立于区域设置的方式对字符串进行排序


我认为您需要显式地用可接受的字符替换所有特殊字符。所以,你->你等等。正如您使用toUpperCase所做的,它用u替换u。

这看起来非常类似。这可能有助于您也可以使用这个概念[a-zA-Z]
String expression ="š|ć|ü";
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (matcher.matches()) 
{
//your code
}