我在工作的前六个月编程,我仍然对标准和最佳实践有所了解。
执行字符串或字符比较时,使用ToUpper比较大写字符或ToLower是否更常见?我可能经常看到大写,但我正在寻找一个更明确的答案,也许是一个冗长的优化解释(较低的ASCII代码,无论如何)。
除此之外:在我当前的任务中,我正在使用string#replace而我的新字符串将是小写的可读性,但这是否意味着我应该在我的源字符串和子字符串上使用ToLower寻找?
答案 0 :(得分:4)
如果有办法在不更改大小写的情况下进行不区分大小写的比较,则应使用它。如果没有,在大多数情况下,最好转换为大写。例如,德语sharp-sß以大写形式转换为双S,并且正确地比较等于SS。如果转换为小写,则会失败,因为小写的SS是ss,而不是ß。
答案 1 :(得分:2)
取决于您使用的是哪种编程语言,C#内置不区分大小写的比较:
string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase);
答案 2 :(得分:1)
这可能是您特定开发团队特有的内容。它应该是有效的等效方式,因为所有低 - >上转换应包含倒数上 - >低。
然而,在一个项目中保持一致可能是一个好主意,以防你在没有互惠关系的情况下得到一个奇怪的扩展角色。
答案 3 :(得分:1)
在某些情况下,您应该使用:InvariantCultureIgnoreCase
string.Equals(a, b, StringComparison.InvariantCultureIgnoreCase);
那是我对Scott Hanselmans文章的解释。 Update on the dasBlog Turkish-I bug and a reminder to me on Globalization