如何忽略大小写比较字符串?

3
我需要比较两个字符串(不仅限于ASCII字符),在D语言中忽略大小写。显然的解决方法是:
s1.toUpper() == s2.toUpper()
但我想避免字符串复制或自己编写功能,而是尝试使用可能最快的本地函数(如果有的话)。
1个回答

7

我在网上查找D语言参考资料,仅花费30秒钟就找到了以下信息:

http://dlang.org/phobos/std_string.html

我发现有一个名为String.icmp的函数:

如果(isForwardRange!S1 && is(Unqual!(ElementType!S1) == dchar) && isForwardRange!S2 && is(Unqual!(ElementType!S2) == dchar)),则alias icmp = std.uni.icmp(S1, S2)(S1 str1, S2 str2);

该函数按字典序比较两个字符序列。它是不区分大小写的。如果需要进行区分大小写的比较,请使用std.algorithm.cmp。有关详细信息,请参见std.uni.icmp。

< 0     s1 < s2
= 0     s1 == s2
> 0     s1 > s2

1
公正地说,我有足够的经验,并且掌握了足够多的编程语言,所以我知道它必须存在,并且知道要寻找什么。此外,文档设计不是很好,依我之见。 - Lawrence Dol
有时候我们都会遇到这种情况。就我个人而言,我刚刚谷歌搜索了“D语言”,找到了dlang.org网站,点击了String类的库参考链接,然后在页面上搜索了“compare”。 - Lawrence Dol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接