gpt4 book ai didi

java - Java 的 equalsIgnoreCase 的正确替代方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:25:40 35 4
gpt4 key购买 nike

关于为什么以及何时 java.lang.String.equalsIgnoreCase 会因为语言环境使用不当而失败的例子有很多。

但是我没有找到任何正确方法的例子。与 java.lang.String.toUpperCase 不同,没有带有语言环境参数的版本。将两个字符串都转换为大写或小写似乎很浪费。尤其是当您正在处理需要进行大量比较的应用程序时。

在考虑语言环境和性能的情况下,进行忽略大小写字符串比较的正确方法是什么?

最佳答案

根据 this page ,您可以使用 Collat​​or 来执行不区分大小写的相等性,如下所示:

//retrieve the runtime user's locale
Locale locale = new Locale(getUserLocale());

//pass the user's locale as an argument
Collator myCollator = Collator.getInstance(locale);

//set collator to Ignore case but not accents
//(default is Collator.TERTIARY, which is
//case sensitive)
myCollator.setStrength(Collator.SECONDARY);

int i = myCollator.compare(stringA,stringB);

(从上述网站复制...)

显然,在其他情况下,您可能会选择不同的语言环境。


对于@fge - 这个 Oracle 错误报告给出了发生的事情的例子。

关于java - Java 的 equalsIgnoreCase 的正确替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26646944/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com