字符串函数使用与 Culture

MSDN解释:

http://msdn.microsoft.com/zh-cn/library/hyxc48dt.aspx

部分摘录:

该比较使用 culture 参数来获取区域性特定的信息,如大小写规则和各个字符的字母顺序。 例如,区域性可以指定将某些字符的组合视为单个字符,或者用特殊方法比较大写和小写字符,或者字符的排序顺序取决于它前面或后面的字符。

使用字排序规则执行比较。 有关字、字符串和顺序排序的更多信息,请参见 System.Globalization.CompareOptions

一个或者两个比较字都可以是 null 根据定义,任何字符串(包括空字符串 (""))的比较结果都大于 null 引用;两个 null 引用的比较结果为相等。

当发现不相等或已经比较了两个字符串时,比较就会终止。 但是,如果两个字符串一直比较到其中一个字符串的末尾时仍相同,而另一个字符串仍有剩余字符,则认为仍有剩余字符的字符串较大。 返回值为执行最后一次比较所得的结果。

下面的示例演示区域性如何影响比较。 在“捷克语 - 捷克共和国”区域性中,“ch”是一个字符,大于“d”。 在“英语 - 美国”区域性中,“ch”是两个字符,而且“c”小于“d”。

using System;
using System.Globalization;

class Sample {
    public static void Main() {
    String str1 = "change";
    String str2 = "dollar";
    String relation = null;

    relation = symbol( String.Compare(str1, str2, false, new CultureInfo("en-US")) );
    Console.WriteLine("For en-US: {0} {1} {2}", str1, relation, str2);

    relation = symbol( String.Compare(str1, str2, false, new CultureInfo("cs-CZ")) );
    Console.WriteLine("For cs-CZ: {0} {1} {2}", str1, relation, str2);
    }

    private static String symbol(int r) {
    String s = "=";
    if      (r < 0) s = "<";
    else if (r > 0) s = ">";
    return s;
    }
}
/*
This example produces the following results.
For en-US: change < dollar
For cs-CZ: change > dollar
*/


posted @ 2012-05-14 11:09  xiaokang088  阅读(464)  评论(0编辑  收藏  举报