主要比较c#中的string.compare和compareTo,以及c++中的string.compare
(1).c#的A.compareTo(B):默认使用的排序准则是CurrentCulture。这是一个对程序员来说比较奇怪的顺序,但它代表的是自然语言的顺序,而且结果是和当前系统的区域和语言选项设置相关的。对字母顺序来说,在大多数culture中,顺序大致是aAbBcC...当A>B时返回1,A=B返回0,A<B返回-1.
(2).c#的string.compare(A,B):和(1)基本相同,所以说为什么File和file,它的返回值是-1了。
(3).c#的string.CompareOrdinal(A,B):它是先比较对应字符的大小(ASCII码顺序:...ABC...abc...),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,依此类推。
(4).c++的string.Compare(A,B):逐个比较A和B中每个字符的ASCII码值,如果A小于B,则返回-1。
所以说,按照词频统计排序的要求,用ASC码排序,应该使用(3)(4)。