不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

汉字笔划排序

在使用笔划排序时,以笔划横坚捌捺折顺序,笔划数从少到多进行排序。下面是测试代码:

static void Main(string[] args)
{
    string[] strs = new string[] { 
        "丁建华(回族)", "王桂林","王淑平",
        "王文杰(回族)","丁建一","邓毛颖",
        "王志雄","丁建","王燕菲","冯志强",
        "冯建标","丁建辉","冯成标"
    };

    Console.WriteLine("===原记录=======");
    foreach (String str in strs)
    {
        Console.WriteLine(str);
    }
    Console.WriteLine();

    Array.Sort<String>(strs, new HanziComparer());
    Console.WriteLine("===排序后=======");
    foreach (String str in strs)
    {
        Console.WriteLine(str);
    }
    Console.ReadLine();
}

public class HanziComparer : IComparer<String>
{
    public int Compare(String x, String y)
    {
        //设置汉字比较方式
        CultureInfo culture = new CultureInfo(0x00020804);

        //按照笔画顺序比较两个字符串
        return string.Compare(x, y, true, culture);
    }
}

输出结果

===原记录=======
丁建华(回族)
王桂林
王淑平
王文杰(回族)
丁建一
邓毛颖
王志雄
丁建
王燕菲
冯志强
冯建标
丁建辉
冯成标
===排序后=======
丁建
丁建一
丁建华(回族)
丁建辉
王文杰(回族)
王志雄
王桂林
王淑平
王燕菲
邓毛颖
冯成标
冯志强
冯建标
不允许评论
粤ICP备17049187号-1