我需要比较两个字符串(不仅限于ASCII字符),在D语言中忽略大小写。显然的解决方法是:
s1.toUpper() == s2.toUpper()
但我想避免字符串复制或自己编写功能,而是尝试使用可能最快的本地函数(如果有的话)。
s1.toUpper() == s2.toUpper()
但我想避免字符串复制或自己编写功能,而是尝试使用可能最快的本地函数(如果有的话)。
我在网上查找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
String
类的库参考链接,然后在页面上搜索了“compare”。 - Lawrence Dol